Skip to main content
 首页 » 编程设计

python之Django 在已安装的应用程序中没有明确的应用程序标签

2024年08月14日42birdshome

我收到运行时错误模型类 accounts.models.User 未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中。在网上搜索解决方案数小时后,我仍然无法弄清楚我做错了什么。 (注意:使用 Django 1.11)

模型.py

class User(AbstractBaseUser): 
    email = models.EmailField( 
        verbose_name='email address', 
        max_length=255, 
        unique=True, 
    ) 
    active = models.BooleanField(default=True) 
    staff = models.BooleanField(default=False) # a admin user; non super-user 
    admin = models.BooleanField(default=False) # a superuser 
    verified = models.BooleanField(default=False) 
 
    USERNAME_FIELD = 'email' 
    REQUIRED_FIELDS = [] # Email & Password are required by default. 
 
    objects = UserManager() 
 
    def get_full_name(self): 
        # The user is identified by their email address 
        return self.email 
 
    def get_short_name(self): 
        # The user is identified by their email address 
        return self.email 
 
    def __str__(self):              # __unicode__ on Python 2 
        return self.email 
 
    def has_perm(self, perm, obj=None): 
        "Does the user have a specific permission?" 
        # Simplest possible answer: Yes, always 
        return True 
 
    def has_module_perms(self, app_label): 
        "Does the user have permissions to view the app `app_label`?" 
        # Simplest possible answer: Yes, always 
        return True 
 
    @property 
    def is_staff(self): 
        "Is the user a member of staff?" 
        return self.staff 
 
    @property 
    def is_admin(self): 
        "Is the user a admin member?" 
        return self.admin 
 
    @property 
    def is_active(self): 
        "Is the user active?" 
        return self.active 
 
    @property 
    def is_verified(self): 
        "Has the user verified their email?" 
        return self.verified 
 
    def email_user(self, subject, message, from_email=None, **kwargs): 
        send_mail(subject, message, from_email, [self.email], **kwargs) 

设置.py

AUTH_USER_MODEL = 'accounts.User' 
 
... 
 
INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'rest_framework', 
    'rest_framework.authtoken', 
    'accounts', 
    'demoapp', 
] 

accounts/apps.py

from django.apps import AppConfig 
 
 
class AccountsConfig(AppConfig): 
    name = 'accounts' 

请您参考如下方法:

在您的 User 类声明中包括:

class Meta: 
    app_label = 'accounts'