2017-10-10 13 views
0

私は認証に関連する3つのモデルを持っていますが、Django Adminでは2つの異なるグループに表示されます。例:Django Adminのモデルのグループを変更する

AUTHORIZATION 
------------- 
Security Questions 
Users 

AUTHORIZATION AND AUTHENTICATION 
-------------------------------- 
Groups 

1つのグループの下にあるように見えますが、1つのグループの下に移動したいと思っています。

私は数年前からこのQ/A出くわし:

Adding a model in Django Admin to the User/Group models?

ワンダー簡単な方法は、モデルやadmin.pyclass Meta:を使用してのようなジャンゴ1.11で今がある場合。ドキュメントを見て、まだ何も出くわしていない。

+1

生成された移行がサイトパッケージで作成される可能性があり(したがって、ソース管理にはチェックインされない可能性があるため)、これは実際には良い考えではありません。 –

答えて

0

実際、私はMohammadとNeErAjの両方の提案を組み合わせなければなりませんでした。

Groupsをというカスタムモデルを含むアプリであるAuthorizationセクションに移動しようとすると、グループの複製が作成されました。 Djangoはデフォルトのauth_groupを挿入したかったので、どのように取り除くのか分かりませんでした。

# ./models.py 
from django.contrib.auth.models import Group 

class Group(Group): 
    pass 

    class Meta: 
    app_label = 'authentication' 

# ./admin.py 
from django.contrib import admin 
from django.contrib.auth.admin import UserAdmin 
from .models import User, SecurityQuestions, Group 

admin.site.register(User, UserAdmin) 
admin.site.register(SecurityQuestions) 
admin.site.register(Group) 

AUTHORIZATION 
------------- 
Groups 
Security Questions 
Users 

AUTHORIZATION AND AUTHENTICATION 
-------------------------------- 
Groups 

私はカスタムUserモデルを使用していたので、私はapp_label = 'auth'に移動しやすくなると考えました。そうすれば、私はデフォルトのauth_groupで戦う必要はありません。やってしまった次

# ./models.py 
from django.contrib.auth.models import AbstractUser 

class User(AbstractUser): 
    ... 

    class Meta: 
     db_table = 'Users' 

class SecurityQuestions(models.Model): 
    ... 

    class Meta: 
     app_label = 'auth' 
     db_table = 'Security_Questions' 
     verbose_name = 'Security Question' 
     verbose_name_plural = 'Security Questions' 

class ProxyUser(User): 
    pass 

    class Meta: 
     app_label = 'auth' 
     proxy = True 
     verbose_name = 'User' 
     verbose_name_plural = 'Users' 

# ./admin.py 

from django.contrib import admin 
from django.contrib.auth.admin import UserAdmin 
from .models import User, SecurityQuestions, ProxyUser 

admin.site.register(ProxyUser, UserAdmin) 
admin.site.register(SecurityQuestions) 

これが見えるようにすべてのものを得た:

AUTHORIZATION AND AUTHENTICATION 
-------------------------------- 
Groups 
Security Questions 
Users 
管理
1

app_labelはMetaクラスで使用できます。

app_labelの値が必要かどうかお知らせください。

+0

に異なるアプリでモデルを表示するために役立つことプロキシモデルを使用することができます – Mario

関連する問題