Python Django&;运行';makemigrations';
我是python的大三学生,我想使用django创建一个Web服务,我编写了model.py,我的类中似乎有问题,但我无法修复。 我不知道错误是在“相关名称”中还是在模型中 运行命令“makemigrations”后的错误消息为:Python Django&;运行';makemigrations';,python,django,django-models,Python,Django,Django Models,我是python的大三学生,我想使用django创建一个Web服务,我编写了model.py,我的类中似乎有问题,但我无法修复。 我不知道错误是在“相关名称”中还是在模型中 运行命令“makemigrations”后的错误消息为: ERRORS: PSTL.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'User.groups'. HINT:
ERRORS:
PSTL.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'User.groups'.
HINT: Add or change a related_name argument to the definition for 'User.groups' or 'User.groups'.
PSTL.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'User.user_permissions'.
auth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'User.groups'.
HINT: Add or change a related_name argument to the definition for 'User.groups' or 'User.groups'.
auth.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'User.user_permissions'.
我的model.py是:
from django.db import models
from django.contrib.auth.models import AbstractUser #BASE
from django.contrib.auth.models import Group
from datetime import *
class User(AbstractUser):
date = models.DateTimeField(auto_now_add = True)
type = models.TextField(max_length=20)
########################################################
def __str__(self): # __unicode__ on Python 2
return self.username
class CompteCandidat(User):
name = models.TextField(max_length=50)
prenom=models.TextField(max_length=50)
sexe = models.TextField(max_length=10)
datecr = models.DateTimeField(auto_now_add = True)
cv = models.OneToOneField('CV',related_name="CompteCcv")
demande=models.OneToOneField('Adresse',related_name="CompteCdemande")
def __str__(self): # __unicode__ on Python 2
return self.name
class CompteRE(User):
name = models.TextField(max_length=50)
accronime = models.TextField(blank=False,null=False)
fondateur = models.TextField(max_length=50)
dateF= models.DateTimeField(auto_now = True,blank=False,null=False)
site= models.TextField(max_length=20)
fax=models.TextField(max_length=20)
activite=models.TextField(max_length=20)
def __str__(self):
return self.name
class CompteRF(User):
name = models.TextField(blank=False,null=False)
accronime = models.TextField(blank=False,null=False)
site= models.TextField(max_length=20)
fax=models.TextField(max_length=20)
#######################################################
def __str__(self):
return self.name
class CV(models.Model):
numtel = models.IntegerField(blank=False,null=False)
datecv= models.DateTimeField(auto_now = True,blank=False,null=False)
pathcv = models.TextField(blank=False,null=False)
compteCand = models.OneToOneField('CompteCandidat',related_name="cvss")
competence=models.ManyToManyField('Competence',related_name="cvss",blank=True)
#######################################################
def __str__(self):
return self.name
class Competence(models.Model):
cv=models.ManyToManyField('CV',related_name="cv",blank=True)
#######################################################
def CVs(self):
return self.cv.all()
class Diplome(Competence):
type=models.TextField(blank=False,null=False)
domaine=models.TextField(blank=False,null=False)
specialite=models.TextField(blank=False,null=False)
annee=models.DateTimeField(auto_now = False,blank=False,null=False)
#######################################################
class CompetenceTech(Competence):
domaine=models.TextField(blank=False,null=False)
valeur=models.TextField(blank=False,null=False)
#######################################################
class CompetenceLang(Competence):
langue=models.TextField(blank=False,null=False)
niveau=models.TextField(blank=False,null=False)
#######################################################
class Adresse(models.Model):
numV=models.IntegerField(blank=False,null=False)
complementdest=models.TextField(blank=False,null=False)
complementadr=models.TextField(blank=False,null=False)
commune=models.TextField(blank=False,null=False)
codeP=models.IntegerField(blank=False,null=False)
pays=models.TextField(blank=False,null=False)
compteCand=models.OneToOneField('CompteCandidat',related_name="ad")
class Demande(models.Model):
nom=models.TextField(blank=False,null=False)
prenom=models.TextField(blank=False,null=False)
pathcv=models.TextField(blank=False,null=False)
class Stage(models.Model):
typeposte=models.TextField(blank=False,null=False)
diplome=models.TextField(blank=False,null=False)
niveau=models.TextField(blank=False,null=False)
duree=models.IntegerField(blank=False,null=False)
commentaire=models.TextField(blank=False,null=False)
class FicheFormation(models.Model):
intitule=models.TextField(blank=False,null=False)
duree=models.IntegerField(blank=False,null=False)
objective=models.TextField(blank=False,null=False)
nbrUE=models.IntegerField(blank=False,null=False)
niveau=models.TextField(blank=False,null=False)
prix=models.IntegerField(blank=False,null=False)
unitef=models.ManyToManyField('FicheFormation',related_name="fichef",blank=True)
class UniteFormation(models.Model):
nomUe=models.TextField(blank=False,null=False)
accronime=models.TextField(blank=False,null=False)
commentaire=models.TextField(blank=True,null=True)
已经有一个名为User的内置类,如果要向其添加额外字段,最好按照此处所述创建一对一关系。您是否忘记将
AUTH\u User\u MODEL
设置设置为自定义用户模型?您需要将其设置为“PSTL.User”
,以便Django知道如何使用您的用户模型,而不是默认模型。