User モデルにフィールドを追加して、それらを管理ページに追加しようとしています。ここのdjangoドキュメントには推奨される方法があります:
https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
そこで、新しいモデル用に OneToOne フィールドを作成しました。
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
designs = models.ManyToManyField('Design', blank=True)
prints = models.ManyToManyField('Print', blank=True)
rating = models.IntegerField(null=True, blank=True)
reliability = models.IntegerField(null=True, blank=True)
av_lead_time = models.IntegerField(null=True, blank=True)
settings.py に AUTH_PROFILE_MODULE を追加しました。
AUTH_PROFILE_MODULE = 'website.UserProfile'
UserProfile フィールドを管理ページに追加しようとしました:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from website.models import UserProfile
from django.contrib.auth.models import User
# Define an inline admin descriptor for UserProfile model
# which acts a bit like a singleton
class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'profile'
# Define a new User admin
class UserAdmin(UserAdmin):
inlines = (UserProfileInline, )
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
ここで、管理者メニューから登録済みユーザーにアクセスしようとすると、次のようになります。
Caught DoesNotExist while rendering: User matching query does not exist.
In template /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/includes/fieldset.html, error at line 19
19 {{ field.field }}
管理メニューから新しいユーザーを追加しようとすると、次のようになります。
Caught DoesNotExist while rendering: User matching query does not exist.
In template /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/includes/fieldset.html, error at line 19
19 {{ field.field }}
その特定のフィールドを認識しないのはなぜですか?