Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django-当不动产关系已经存在时,增加M2M关系_Django - Fatal编程技术网

django-当不动产关系已经存在时,增加M2M关系

django-当不动产关系已经存在时,增加M2M关系,django,Django,我与M2M的关系如下: class Foo: # foo fields... class Bar: Foos = ManytoManyField(Foo) 我正在尝试将一个foo添加到一个酒吧的foo列表中,因此我有: if Foo not in Bar.Foos: Bar.Foos.add(Foo) 问题:是否真的有必要作出判断 谢谢如Django文件所述: 添加第二次是可以的,它不会复制关系 您可以多次调用bar.foo.add(baz),它不会

我与M2M的关系如下:

class Foo:
    # foo fields...

class Bar:
    Foos = ManytoManyField(Foo)
我正在尝试将一个foo添加到一个酒吧的foo列表中,因此我有:

    if Foo not in Bar.Foos:
        Bar.Foos.add(Foo)
问题:是否真的有必要作出判断


谢谢

如Django文件所述:

添加第二次是可以的,它不会复制关系

您可以多次调用
bar.foo.add(baz)
,它不会在数据库中创建重复的关系或行

p、 s:在Python中,所有内容(变量、实例等)都必须是小写,并用下划线分隔。异常包括类名称、异常名称和全局常量名称。到岸价:

使用上述代码进行示例:

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)