我最近使用 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
基本上我想要实现的是摆脱在管理中显示的#1 StackedInLine。我使用 StackedInLine 而不是 TabularInLine 的原因是因为否则我会得到“删除?” 右侧的列,我发现它是可选的,所以我想排除它或去掉 StackedInLine 中的 #1 编号。
2
还。我想知道为什么我在 admin.py 中加载了 UserProfile models.py 文件时不能使用字段集。它只是说该字段不存在。我是否必须以不同于在 django/contrib/auth/admin.py 中看到它工作的方式调用这些字段?
如果您觉得有一种更有效的方法可以做到这一点,请告诉我。