django-当房地产已经存在时添加到M2M关系

时间:2018-08-11 01:52:42

标签: django

我有这样的M2M关系:

class Foo:
    # foo fields...

class Bar:
    Foos = ManytoManyField(Foo)

我正在尝试将foo添加到归因于Bar的foos列表中,所以这就是我所拥有的:

    if Foo not in Bar.Foos:
        Bar.Foos.add(Foo)

问题:如果判决真的必要吗?

谢谢

1 个答案:

答案 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)