我最近扩展了UserProfile,因此我的admin.py看起来像这样:
from django.contrib import admin
from django.contrib.auth.models import User
from models import UserProfile
from django.contrib.auth.admin import UserAdmin
admin.site.unregister(User)
class UserProfileInline(admin.StackedInline):
model = UserProfile
class UserProfileAdmin(UserAdmin):
# fieldsets = [
# (None, {'fields': ['image']}),
# ('Avatar', {'fields': ['text'], 'classes': ['collapse']}),
# ]
inlines = (UserProfileInline,)
admin.site.register(User, UserProfileAdmin)
和models.py像这样:
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
# Required
user = models.ForeignKey(User, unique=True)
image = models.ImageField(upload_to='media/users/', blank=True, help_text="Your face")
text = models.TextField(blank=True, help_text="Write something about yourself")
In an app called users that is referred to by settings.py with:
AUTH_PROFILE_MODULE = users.UserProfile
基本上,我要实现的是摆脱#1 StackedInLine在管理员中显示。我使用StackedInLine而不是TabularInLine是因为否则我会收到“删除?”列到正确,我认为它是可选的,因此我想排除它或摆脱StackedInLine中的#1编号。
也。我想知道为什么加载完后无法使用字段集admin.py中的UserProfile models.py文件。它只是说领域不存在。我是否必须以不同于django /的方式调用字段我在哪里看到contrib / auth / admin.py?
如果您觉得有更有效的方法,请告诉我。