大家好,感谢您的阅读。

我有一个简单的问题,我想摆脱的,我还没有见过 在那里,这是尚未实现的例子,虽然搜索周围的净 相当长一段时间。

我最近与用户配置扩展,所以我的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的编号。

这是它看起来像在“现实世界”。(用红色标出)

<强>叠放: hxxp://i28.tinypic.com/2lsadkg.jpg

<强>表格: hxxp://i27.tinypic.com/4lybs.jpg

2

另外。我不知道为什么,当我已加载我不能使用字段集的 在admin.py用户配置文件models.py。它只是说领域 不存在。我必须以不同的方式调用领域比在Django / 的contrib / auth /中admin.py,我已经看到了它的工作?

如果你觉得有这样做的更有效的方式直接告诉我。我打开所有的答案。

有帮助吗?

解决方案

1

我觉得你变得太挑剔这里。如果你绝对需要在控制这些微小的细节,你应该创建你自己的看法,而不是使用管理。否则堆叠是你想要的,因为表格不会为一到一个关系太大的意义。

2

我已经能够在用户配置文件使用的字段集。我的代码和你之间唯一的区别似乎是我使用的元组的字典的代替。这里的矿进行比较:

class UserProfileInline(admin.StackedInline):
    model = UserProfile

class MyUserAdmin(UserAdmin):
    inlines = [UserProfileInline]
    fieldsets = (
        (None, {'fields': ('username', 'password')}),
        (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
        (_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser')}),
        (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
        (_('Groups'), {'fields': ('groups',)}),
    )
    exclude = ['user_permissions']

修改

我只是做了一个快速检查和“#1”是从管理模板来了。

这意味着你可以很容易地通过覆盖股票管理模板中删除它,尽管这会影响您所有的内联,包括那些是一个一对多的。

在层叠联模板可以在django/contrib/admin/templates/admin/edit_inline/stacked.html找到

这意味着你可以在模板复制到自己的模板目录templates/admin/edit_inline/stacked.html,这将通过Django的在运行时,而不是股票的模板被加载。

在第9行复制编辑您的本地副本删除#{{ forloop.counter }}后。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top