Django 2.2:将用户模型分解为两个不同的模型?

我正在使用内置的Django Admin,我有两种类型的用户,都需要使用不同的URL进行调用,即http://127.0.0.1:8000/admin/staffhttp://127.0.0.1:8000/admin/customer需要将用户模型分解为两个单独的模型{ {1}}和StaffCustomer模型将用于管理员用户,Staff模型将用于前端用户。

注意:我将数据库表名保留为默认的Customerauth_user ... etc

我已经在项目

中创建了名为auth_group的应用

到目前为止,我已经尝试了以下操作:

models.py

users

admin.py

from django.contrib.auth.models import (
    AbstractUser,Permission,Group,GroupManager)
from django.db import models
from django.utils.translation import gettext_lazy as _

class Staff(AbstractUser):

    class Meta(AbstractUser.Meta):
        swappable = 'AUTH_USER_MODEL'
        verbose_name = _('staff')
        verbose_name_plural = _('staffs')
        db_table = 'auth_user'


class Customer(AbstractUser):

    class Meta(AbstractUser.Meta):
        swappable = 'AUTH_USER_MODEL'
        verbose_name = _('customer')
        verbose_name_plural = _('customers')
        db_table = 'auth_user'

settings.py

from django.contrib import admin from django.contrib.auth.models import Group,User,Permission from django.contrib.auth.admin import GroupAdmin,UserAdmin from django.utils.translation import ugettext_lazy as _ from django import forms from django.forms import ModelForm,Select from users.models import Staff,Customer class MyGroupAdminForm(forms.ModelForm): class Meta: model = Group fields = ('name','permissions') permissions = forms.ModelMultipleChoiceField( Permission.objects.exclude(content_type__app_label__in=[ 'auth','admin','sessions','users','contenttypes']),widget=admin.widgets.FilteredSelectMultiple(_('permissions'),False)) class MyUserAdminForm(forms.ModelForm): model = User groups = forms.ModelChoiceField(Group.objects,label='Role') class Meta: model = User fields = '__all__' class CustomUserAdmin(UserAdmin): form = MyUserAdminForm fieldsets = ( (None,{'fields': ('username','password')}),(_('Personal info'),{'fields': ('first_name','last_name','email')}),(_('Permissions'),{'fields': ('is_active','is_staff','is_superuser','groups',)}),(_('Important dates'),{'fields': ('last_login','date_joined')}),) class CustomGroupAdmin(GroupAdmin): form = MyGroupAdminForm # admin.site.unregister(User) admin.site.unregister(Group) # admin.site.register(User,CustomUserAdmin) # admin.site.register(Group,CustomGroupAdmin) admin.site.register(Staff,CustomUserAdmin) admin.site.register(Group,CustomGroupAdmin)

现在,当我尝试更改任何职员用户时,出现以下错误:

AUTH_USER_MODEL = "users.Staff"

请指导我正确的操作方法

谢谢

ilovejingye 回答:Django 2.2:将用户模型分解为两个不同的模型?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2790841.html

大家都在问