代码之家  ›  专栏  ›  技术社区  ›  dza

UserProfile StackedLine/TablerLine重新设计

  •  0
  • dza  · 技术社区  · 16 年前

    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)
    

    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 StackedLine 显示在管理中。我使用StackedLine而不是 是的,我发现它是可选的,所以我想排除它,或者 去掉StackedLine中的#1编号。

    2.

    也。我想知道为什么在加载了 不存在。我是否必须调用与django中不同的字段/ contrib/auth/admin.py我在哪里看到它工作的?

    如果你觉得有一种更有效的方法,告诉我。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Van Gale    16 年前

    1.

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

    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']
    

    :

    django/contrib/admin/templates/admin/edit_inline/stacked.html

    templates/admin/edit_inline/stacked.html 这将由Django在运行时而不是股票模板加载。

    #{{ forloop.counter }} 第9行。