1、models.ForeignKey
ForeignKey是个多对一(many to one)关系。引用下官方文档的例子:
from django.db import models
class Topping(models.Model):
# ...
pass
class Pizza(models.Model):
# ...
toppings = models.ForeignKey<span style="font-family: Arial, Helvetica, sans-serif; line-height: 1.3em;">(Topping)</span>
Pizza模型关联到Toppinig模型。要创建一个Pizza模型有两种方法:
1、
# 先创建一个Topping
t = Topping()
# 通过t来建立相关联的Pizza
p = t.pizza_set.create()
这种方法适用于比较简单一点的关系,比如投票系统,一个问题就固定对应几个选项。若要在以存在的模型之间建立关系,则可使用第二种方法:
2、
ForeignKey的一些参数设置:
t = Topping()
p = Pizza.objects.create(toppings=t)
class Blog(models.Model):
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.SET_NULL)
ForeignKey默认在被关联项删除时,会将与之关联的所有项一起删除。要避免这种情况需要设置on_delete参数来规定进行删除操作时的行为。除SET_NULL以外还有SET_DEFAULT等参数,更详细的在文档里有说明:
官方文档
其他的关系类型等以后再补……