UserProfile StackedInLine / TabularInLine重新设计

问题描述 投票:0回答:1

我最近扩展了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?

如果您觉得有更有效的方法,请告诉我。

django tabular inlines stacked
1个回答
4
投票
1

我认为您在这里太挑剔了。如果您绝对需要控制这些详细信息,则应创建自己的视图,而不要使用管理员。否则,堆叠就是您想要的,因为表格对一对一关系没有多大意义。

© www.soinside.com 2019 - 2024. All rights reserved.