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 关系是不对称的.

你可能感兴趣的:(类,Class)