Django 模型类ForeignKey 选项参数

to_fields   

被关联字段用于关联的字段,默认情况下,Django使用被关联对象的主键

如果主表的主键有可能发生改变,则需要在外键字段的参数中to_fields指定到被关联主表的一个必传(unique)的某个字段,使其不影响之前的业务逻辑

relate_name   

举例:一个人物信息表(PeopleInfo)拥有的字段是models.ForeignKey(Book),则默认会有一个relate_name为"peopleinfo_set"(被关联模型类小写+_set),如果在外键关系里修改了relate_name ,如,model.ForeignKey(Book, relate_name=“person”),则People的对象描述符号就变成了“person”,可以通过book.person 取到所有关联这本书的人物 (未指定之前是通过book.peopleinfo_set)  

真正的用处是在一个对象被另一个对象关联不止一次时,这个参数才真正有用

举例:如果一个Story 对象既有frist_category 字段,又又second_category 字段,为确保Category 对象拥有正确的对象描述符,需要指定relate_name

      models.ForeignKey(Category, relate_name="first_story")

      models.ForeignKey(Category, relate_name="second_story")

这样 Category对象才会自动拥有frist_story和second_story 的对象描述符

    

猜你喜欢

转载自www.cnblogs.com/yungiu/p/10105942.html