我有这样的M2M关系:
class Foo:
# foo fields...
class Bar:
Foos = ManytoManyField(Foo)
我正在尝试将foo添加到归因于Bar的foos列表中,所以这就是我所拥有的:
if Foo not in Bar.Foos:
Bar.Foos.add(Foo)
问题:如果判决真的必要吗?
谢谢
答案 0 :(得分:0)
如Django文档所述:https://docs.djangoproject.com/en/2.2/topics/db/examples/many_to_many/
第二次添加是可以的,不会重复该关系
您可以多次呼叫bar.foo.add(baz)
,它不会在数据库中创建重复的关系或行。
p.s .:在Python中,所有内容(变量,实例等)都必须小写,且单词之间用下划线分隔。例外是类名,异常名和GLOBAL_CONSTANT_NAMES。抄袭:What is the naming convention in Python for variable and function names?
例如上面的代码:
class Bar:
foos = ManytoManyField(Foo)
def your_view(id):
foo = Foo.objects.get(id=id)
bar = Bar.objects.get(foo=foo)
if foo not in bar.foos:
bar.foos.add(foo)