ManyToMany

ManyToManyField 能接受额外的参数以定义这种关系的工作方式, 所有这些参数都是可选的:

参数描述
related_name参阅上文中 Foreignkey 小节讲到的 related_name
filter_interface在 admin 表单中使用适当的 Javascript "过滤" 界面 (界面友好易用) 而不使用 <selectmultiple> (不易使用). 它的值应该是 models.HORIZONTAL 或 models.VERTICAL (也就是界面应该横放还是竖放).
limit_choices_to参阅上文中 ForeignKey 的同名参数
singular该字段的唯一名字. 在 get_* 方法中使用这个名字.在上面的例子里, , Django 提供给Pizza 对象一个 get_topping_list() 方法. 这里 topping 就是 singular 参数的默认值(它来自被连接的类的名字的小写) 使用 singular 参数可以改变这些自动生成方法的名字, 尤其当你的一个 model和另一个 model 具有多个 ManyToMany 关系时, 这个参数就会相当有用.
symmetrical

仅用于 model 定义自身的 ManyToManyFields . 假设有下面一个 model:

class Person(models.Model):
friends = models.ManyToManyField("self")

当 Django 处理该 model 时, Django 会发现这是一个对自己的 ManyToManyField , 因此它不会添加一个 "person_set" 属性. ManyToManyField 是对称的, 也就是: 我是你的朋友, 你也就是我的朋友. 这个意思.

若你不需要这种对 model 自身的 ManyToMany 关系,设置 symmetrical 为 False. 这样 Django 会强制给关系的另一方添加一个对象集描述符.从而允许 ManyToMany 关系是不对称的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值