外键数据类型
Foreign Key data type
我的 DJango 项目中 models.py 中有两个 类。
class person(models.Model):-
field1 = models.AutoField(primary_key=True)
person_name = models.CharField(max_length=100, null=True, blank=True)
class orders(models.Model):-
field22 = models.ForeignKey(person, on_delete=models.CASCADE, null=True)
在上面两个模型中观察到,field22是映射到tableperson[=的主键的外键21=].
现在,field22、int(或)str 的数据类型是什么? (或者)会继承主键的数据类型?
作为人table的主键,订单table中的field22将包含整数。
关键是因为它是一个外键,你不能像标准整数一样执行操作。
例如:
在 table 人中你有两行:
场/人
1 / MrX
2 / Y先生
在 table 个订单中
pk(自动)/field22/其他字段
1 / 2 /text2.1
2 /1 / text1.1
3 /1 / text1.2
如果您想查看 MrX 的 table 订单,您必须亲自获得 MrX 的实例 table 并在订单 tables:[=12 中搜索结果=]
#get instance
instancePerson=person.objects.get(person="MrX")
#and then look in orders
search=orders.objects.filter(field22=instancePerson).values_list('otherfield' )
print(search)
#output:
['text1.1','text1.2']
例如,如果您尝试按字段 22 的值进行搜索:
search=orders.objects.filter(field22=1).values_list('otherfield' )
您将提出一个异常,这将向您解释比预期和收到 1 个实例。
希望它回答了你的问题。
我的 DJango 项目中 models.py 中有两个 类。
class person(models.Model):-
field1 = models.AutoField(primary_key=True)
person_name = models.CharField(max_length=100, null=True, blank=True)
class orders(models.Model):-
field22 = models.ForeignKey(person, on_delete=models.CASCADE, null=True)
在上面两个模型中观察到,field22是映射到tableperson[=的主键的外键21=].
现在,field22、int(或)str 的数据类型是什么? (或者)会继承主键的数据类型?
作为人table的主键,订单table中的field22将包含整数。 关键是因为它是一个外键,你不能像标准整数一样执行操作。
例如: 在 table 人中你有两行:
场/人
1 / MrX
2 / Y先生
在 table 个订单中
pk(自动)/field22/其他字段
1 / 2 /text2.1
2 /1 / text1.1
3 /1 / text1.2
如果您想查看 MrX 的 table 订单,您必须亲自获得 MrX 的实例 table 并在订单 tables:[=12 中搜索结果=]
#get instance
instancePerson=person.objects.get(person="MrX")
#and then look in orders
search=orders.objects.filter(field22=instancePerson).values_list('otherfield' )
print(search)
#output:
['text1.1','text1.2']
例如,如果您尝试按字段 22 的值进行搜索:
search=orders.objects.filter(field22=1).values_list('otherfield' )
您将提出一个异常,这将向您解释比预期和收到 1 个实例。 希望它回答了你的问题。