Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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中使用相同外键时出错_Python_Django_Django Models - Fatal编程技术网

Python 在多个表django中使用相同外键时出错

Python 在多个表django中使用相同外键时出错,python,django,django-models,Python,Django,Django Models,我有一张名为 class student(models.Model): std_name= models.CharField(max_length=20 , blank=False, null=False) std_username = models.CharField(max_length=20 , blank=False, null=False) 和另一个名为std_admission的表 class std_admission(models.Mod

我有一张名为

   class student(models.Model):
       std_name= models.CharField(max_length=20 , blank=False, null=False)
       std_username = models.CharField(max_length=20 , blank=False, null=False)
和另一个名为std_admission的表

   class std_admission(models.Model):
        admission_date= models.CharField(max_length=20 , blank=False, null=False)
        std_name = models.ForeignKey(student, default=1, on_delete=models.SET_DEFAULT)
        std_username = models.ForeignKey(student, default=1, on_delete=models.SET_DEFAULT) 
当我键入makemigrations时,会出现此错误
与反向访问器冲突

您必须手动添加“相关名称”进行反向搜索


默认值为
foreignmodel\u set
,但如果使用两次,就会产生冲突,这就是为什么在您的案例中需要它。

您必须手动添加“相关的\u名称”进行反向搜索


默认值为
foreignmodel\u set
,但如果使用两次,就会产生冲突,这就是为什么在您的情况下需要它。

首先,您应该始终使用大写字母书写类名,例如:

班级学生(models.Model)
其次,不需要从
Student
表中添加两次外键

std_name=models.ForeignKey

够了

当您添加这两个选项时,它们不会引用学生姓名和用户名。相反,它们都给出
student
实例的pk。 您最好将外键的名称从
std\u name
更改为仅
student

student=models.ForeignKey

现在,如果您想从录取表中获取该学生的用户名,您可以这样做:

std\u admission.objects.get(pk=some pk).std\u name.username

这将为您提供这个特殊的
std\u入学实例的学生用户名。如果使用过滤器而不是
get
,则将无法使用

.std\u name.username

as过滤器将返回一个查询集,您必须使用


[i].std_name.username.

首先,您应该使用大写字母书写类名,例如:

班级学生(models.Model)
其次,不需要从
Student
表中添加两次外键

std_name=models.ForeignKey

够了

当您添加这两个选项时,它们不会引用学生姓名和用户名。相反,它们都给出
student
实例的pk。 您最好将外键的名称从
std\u name
更改为仅
student

student=models.ForeignKey

现在,如果您想从录取表中获取该学生的用户名,您可以这样做:

std\u admission.objects.get(pk=some pk).std\u name.username

这将为您提供这个特殊的
std\u入学实例的学生用户名。如果使用过滤器而不是
get
,则将无法使用

.std\u name.username

as过滤器将返回一个查询集,您必须使用


[i].std_name.username.

那么,如果我使用foriegnkey在模型中手动添加相关的_name='+',应该可以正常工作吗?并且能够在我使用它的模型中获取存储在名为(foreignkey)字段中的数据?因此,如果我在模型中手动添加相关的_name='+',我使用foriegnkey,它应该可以正常工作吗?在我使用它的模型中,能得到存储在名为(foreignkey)字段中的数据吗?