2017-11-07 6 views
0

UserAdminUserという名前の形式を継承する2つのモデルを作成します。Djangoの2つのカスタムユーザモデルのケースを扱うには?

しかし、そこにするときのrunserver特定されたエラーをチェックしているので、私は追加します。

AUTH_USER_MODEL = "qiyun_admin_usermanage.User" 

を私のsettings.pyで。ハーフエラーは消えましたが、まだqiyun_admin_usermanage.AdminUserさんの問題があります。 AUTH_USER_MODELに2つのカスタムモデルを設定できるかどうか、またはAUTH_USER_MODELが1つだけでなければならないかどうかはわかりません。

トレースバック:

... 
django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues: 

ERRORS: 
qiyun_admin_usermanage.AdminUser.groups: (fields.E304) Reverse accessor for 'AdminUser.groups' clashes with reverse accessor for 'User.groups'. 
     HINT: Add or change a related_name argument to the definition for 'AdminUser.groups' or 'User.groups'. 
qiyun_admin_usermanage.AdminUser.user_permissions: (fields.E304) Reverse accessor for 'AdminUser.user_permissions' clashes with reverse accessor for 'User.user_permissions'. 
     HINT: Add or change a related_name argument to the definition for 'AdminUser.user_permissions' or 'User.user_permissions'. 
qiyun_admin_usermanage.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'AdminUser.groups'. 
     HINT: Add or change a related_name argument to the definition for 'User.groups' or 'AdminUser.groups'. 
qiyun_admin_usermanage.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'AdminUser.user_permissions'. 
     HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'AdminUser.user_permissions'. 
+0

個別のモデルではなく、カスタムユーザーモデルで 'is_admin'フィールドを作成するか、グループを使用して管理者を識別するようにしてください。 –

+0

普通のユーザーと管理者ユーザーを2つのテーブルに分ける方が良いと思いませんか? – 244boy

+0

いいえ、それらは同じ種類の「物」(ユーザー)であり、その属性ではなく役割が異なります。 2つのテーブルを持つことは、ユーザ管理を大いに複雑にする –

答えて

0

一つだけAUTH_USER_MODELsのがあるかもしれません。ユーザーと管理者を分離したい場合は、スニペットがある:

from django.contrib.auth.models import AbstractBaseUser 
from django.contrib.auth.models import PermissionsMixin 

class CustomUser(AbstractBaseUser, PermissionsMixin): 

    name = models.CharField(max_length=40) 
    ... 

PermissionsMixinは許可が処理することができ、あなたのDBにis_superuser列が追加されます。

関連する問題