这些模型在django中有两个不同的应用程序。我创建了两个表之间的主键和外键关系,但输出不是所需的输出。
class User(models.Model):
user_name = models.CharField( max_length=255, default=None)
email = models.CharField( max_length=255, default=None)
mobile_number = models.IntegerField( default=0)
created_on = models.DateTimeField( auto_now=True)
class Todo(models.Model):
title = models.CharField( max_length=255, default=None)
description = models.CharField( max_length=255, default=None)
created_on = models.DateTimeField(auto_now=True)
user = models.ForeignKey('Account.User',on_delete=models.CASCADE)
假设我在User
表中创建了一个条目,并且分配的ID为1
,但我也可以在Todo
表中创建一个带user_id = 2
的条目(其中根据规则不是有效值,并创建条目。任何人都可以提出原因吗?
在Python shell中:
from Account.models import User
my_user = ( user_name = "Abhis", email = "aa@aa.com", mobile_number = "9999999999", created_on = datetime.datetime.today())
my_user.save()
# it will create a row with id 1.
from ToDo.models import Todo
my_todo = ( title = "title", description = "description", created_on = datetime.datetime.today(), user_id = 4)
my_todo.save()
# the row with this user_id = 4 is created, which must be illegal
答案 0 :(得分:0)
django文档声明这不会发生,它会抛出DoesNotExist异常。请查看以下链接
Django raises DoesNotExist when consulting an empty ForeignKey field or key that does not exist
但是,如果要连接到存在的数据库,并且其值不是正确的外键,也会在下面的链接中提到。它清楚地表明模型是错误的,应该在这种情况下改变。下面的链接
documentation: invalid foreign key and select_related
当我尝试将随机值分配给外键时,它抛出了ValueError。您可以检查您的数据库是否没有{{1}}的条目。