0

ページDjangoの「ユーザープロファイルを作成する方法」にある例を使用して、ユーザー用にいくつかの追加フィールドを作成しますが、問題はありませんでした。私が見つけた解決策はフォームからのものではありませんが、実際には、管理のステータスを維持するために Django 管理者からのアイデアを好みます。

したがって、追加のフィールドをユーザー モデルに挿入するのは次のとおりです。

## 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))

一方、私のような同じユーザーの「アクセス許可」の機能は、プラットフォームにとって不要であるため、この情報を削除し、追加のフィールドは「個人情報」に残ります。管理者は次のようになります。

個人情報

ファーストネーム:

苗字:

電子メールアドレス:

ニット:

会社:

住所:

街:

電話:

モバイル:

管理者 Django1.4 でこれらの新しいフィールドを取得する方法を教えてください。私は助けが必要です!

4

1 に答える 1

0

あなたがやりたいことは、ユーザーと一緒に管理者で UserProfile を編集することだと思いますか? その場合は、UserProfile を定義したアプリの admin.py ファイルに次を入れてみてください。

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)
于 2012-05-02T23:42:55.993 に答える