Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么会抛出Django-Reverse查询名称SystemCheckError?_Python_Django - Fatal编程技术网

Python 为什么会抛出Django-Reverse查询名称SystemCheckError?

Python 为什么会抛出Django-Reverse查询名称SystemCheckError?,python,django,Python,Django,我是Django的新手,在使用python3 manage.py运行服务器运行Django应用程序时 由于我创建模型的方式,我得到了如下错误 django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues: ERRORS: database.LeadsStatus.company_id: (fields.E305) Reverse query name for

我是Django的新手,在使用
python3 manage.py运行服务器运行Django应用程序时
由于我创建模型的方式,我得到了如下错误

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

ERRORS:
database.LeadsStatus.company_id: (fields.E305) Reverse query name for 'LeadsStatus.company_id' clashes with reverse query name for 'LeadsStatus.companies'.
        HINT: Add or change a related_name argument to the definition for 'LeadsStatus.company_id' or 'LeadsStatus.companies'.
database.Users.id: (fields.E007) Primary keys must not have null=True.
        HINT: Set null=False on the field, or remove primary_key=True argument.

System check identified 2 issues (0 silenced).
这就是我创建模型的方式

class LeadsStatus(models.Model):
    id = models.IntegerField(primary_key=True, auto_created=True)
    company_id = models.ForeignKey('Companies', null=False, db_index=True, on_delete=models.CASCADE)
    status = models.CharField(max_length=120)
    users_id = models.IntegerField()
    assign_date = models.DateTimeField()
    companies = models.OneToOneField('Companies', on_delete=models.CASCADE)

我相信错误可能是因为我创建OneToOneField的方式。如何解决此错误。请帮我理解。谢谢

如果您真的需要2个foreing键来识别型号
公司
,那么您需要设置选项来区分它们

例如,您可以将类更改为:

class LeadsStatus(models.Model):
    ...
    company_id = models.ForeignKey(
        'Companies',
        null=False,
        db_index=True,
        on_delete=models.CASCADE,
        related_name='leadsstatus_1_set')
    ...
    companies = models.OneToOneField(
        'Companies',
        on_delete=models.CASCADE,
        related_name='leadsstatus')

您还可以仅在这两个字段中的一个字段上设置
相关的\u名称
,只要它与
leadsstatus\u集的默认值不同

您是否需要外键和与Companys表的OneToOne关系?(你指的是两家公司还是一家?)。用户表上还有另一个错误,您将一个字段设置为主键,并且允许空值,这是不可能的。@AbdulAzizBarkat I删除了用户表上的错误。是的,我需要一个外键和与公司表的一对一关系提示:您可以省略字段
id=models.IntegerField(primary\u key=True,auto\u created=True)
,因为它是由Django()自动添加的