Django反向访问

2024-05-17 06:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白为什么我的模型的某些领域会发生冲突。

我没有外键,为什么会冲突?!

这是我的代码:

from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import AbstractUser
import datetime
import uuid

# Create your models here
class Patients(AbstractUser):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    first_name = models.CharField(max_length = 255)
    last_name = models.CharField(max_length = 255)
    dob = models.DateField(datetime.date.today)
    gender = models.CharField(max_length = 1)
    def __unicode__(self):
        return self.id

错误如下:

api.Patients.groups: (fields.E304) Reverse accessor for 'Patients.groups' clashes with reverse accessor for 'User.groups'.
        HINT: Add or change a related_name argument to the definition for 'Patients.groups' or 'User.groups'.
api.Patients.user_permissions: (fields.E304) Reverse accessor for 'Patients.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'Patients.user_permissions' or 'User.user_permissions'.
auth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'Patients.groups'.
        HINT: Add or change a related_name argument to the definition for 'User.groups' or 'Patients.groups'.
auth.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'Patients.user_permissions'.
        HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'Patients.user_permissions'.

Tags: ornameimportpermissionsfieldsformodelsreverse
2条回答

您需要将AUTH_USER_MODEL添加到setting.py文件中。Django需要知道这一点才能初始化默认模型。您可以添加以下内容:

AUTH_USER_MODEL = 'your_app.Patients'

在文档中检查这个Substituting a custom User model

引用:https://stackoverflow.com/a/26703434/4575071

正在使用AbstractUser,则应在file settings.py中使用:

AUTH_USER_MODEL = 'user.user'

相关问题 更多 >