Python ';型号';没有'的外键;auth。用户';
我对Django Admin有点问题。因此,我有一个模型Python ';型号';没有'的外键;auth。用户';,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我对Django Admin有点问题。因此,我有一个模型UserProfile,它扩展了一个reglearUser。还有另一种模型:Language、Level和UserProfileLanguage,这是一种直通模型 class UserProfileLanguage(models.Model): userprofile = models.ForeignKey(UserProfile) language = models.ForeignKey(Language) lev
UserProfile
,它扩展了一个reglearUser
。还有另一种模型:Language
、Level
和UserProfileLanguage
,这是一种直通模型
class UserProfileLanguage(models.Model):
userprofile = models.ForeignKey(UserProfile)
language = models.ForeignKey(Language)
level = models.ForeignKey(Level)
class Meta:
unique_together = (('userprofile', 'language'),)
问题是我在Django Admin
中的User
选项卡中看不到attibute语言:
class UserProfile(...
...
languages = models.ManyToManyField(Language, through='UserProfileLanguage')
所以我决定把它明确地放到User
选项卡中,所以admin.py
是:
from django.contrib import admin
from models import *
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
admin.site.register(AdminContact)
class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'User_Profile'
# this does not work
class UserProfileLanguageLevelInline(admin.StackedInline):
model = UserProfileLanguage
class UserAdmin(BaseUserAdmin):
inlines = (UserProfileInline,UserProfileLanguageLevelInline, )
admin.site.unregister(User)
admin.site.register(User,UserAdmin)
admin.site.register(LanguageTuple)
admin.site.register(Language)
admin.site.register(Job)
admin.site.register(UserProfileLanguage)
CMD说:
ERRORS:
<class 'SolutionsForLanguagesApp.admin.UserProfileLanguageLevelInline'>: (admin.
E202) 'SolutionsForLanguagesApp.UserProfileLanguage' has no ForeignKey to 'auth.
User'.
错误:
:(行政。
E202)“SolutionsForLanguagesApp.UserProfileLanguage”没有“auth”的外键。
用户'。
问题是UserProfileLanguage
与UserProfile
连接,而UserProfile
与User
连接。你知道该怎么做吗?你确定Django使用的是你的用户配置文件模型而不是用户模型吗?您需要在此处切换翻转以使UserProfile模型作为默认用户模型: