2012-05-02 16 views
0

Djangoの "ユーザープロファイルを作成する方法"の例を使って、ユーザーのためのいくつかの追加フィールドを作成します。問題は、管理者や管理者から見て、これらの新しいデータをユーザーに挿入するときです。私が見つけた他の解決策はフォームからではありませんが、私は実際にDjango管理者から管理の状態を維持するというアイデアを好んでいます。それは、このプラットフォームには不要なので、私のように、同じユーザーの「権限」の機能は、それを削除する一方Django Admin:ユーザーの追加フィールドを表示する方法は?

## User Additional Fields 
User.add_to_class ('nit' models.IntegerField (max_length = 20, null = True)) 
User.add_to_class ('company', models.CharField (max_length = 30, null = True)) 
User.add_to_class ('address', models.CharField (max_length = 30, null = True)) 
User.add_to_class ('city', models.CharField (max_length = 10, null = True)) 
User.add_to_class ('phone', models.CharField (max_length = 10, null = True)) 
User.add_to_class ('Mobile', models.CharField (max_length = 10, null = True)) 

したがって、ユーザモデルに挿入追加フィールドということでした情報とその追加フィールドは、すべてこのように、管理者が「個人情報」にとどまる:

個人情報

まず名前:

姓:

E-mailアドレス:

NIT:

会社:

アドレス:

市:

電話:

モバイル:

admin Django1.4でこれらの新しいフィールドをどのように手に入れることができますか?私は助けが必要です!

答えて

0

私はあなたのUserProfileを管理者と一緒に編集すると思いますか?もしそうなら、あなたが定義したのUserProfileどんなアプリでadmin.pyファイルに次のように入れてみてください:OneToOneField`、明示的に `指定する必要はありません`ため

from django.forms.models import inlineformset_factory 
from django.contrib import admin 
from django.contrib.auth.models import User 
from django.contrib.auth.admin import UserAdmin 

from myapp.models import UserProfile 


class UserProfileFormSet(inlineformset_factory(User, UserProfile)): 
    def __init__(self, *args, **kwargs): 
     super(UserProfileFormSet, self).__init__(*args, **kwargs) 
     self.can_delete = False 

class UserProfileInline(admin.StackedInline): 
    model = UserProfile 
    fk_name = 'user' 
    formset = UserProfileFormSet 

class MyUserAdmin(UserAdmin): 
    inlines = [UserProfileInline] 


# Re-register altered UserAdmin 
admin.site.unregister(User) 
admin.site.register(User, MyUserAdmin) 
+1

をMAX_NUM = 1 'と '余分= 0'のInlineModelAdmin – okm

+0

私が理解しているかどうかを確認するには、管理者にモデルを作成した場合、私はadmin.py(これはすでに作成済み)というファイルを作成しますが、データベースのフィールドUserProfileモデルを作成しない既定のユーザー、これは別の方法ですか?私は突然それをそのようにしなければなりません。管理者のユーザーに行われたadd_to_classを見えるようにすることです。 – user987055

+0

私は本当にあなたが申し訳ありませんが、UserProfileクラスを作成するのではなく、Userモデルを拡張することを考えている場合は、あなたがトラブルを求めていると言っていると思います。私はそれが完了したことを見て、それはあらゆる種類の問題を引き起こした。ここでUserProfilesについて読むことができます:https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users – Greg

関連する問題