在tomtomany中,add函数的结果是什么?

引信

这是我的模特

class MyUser(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    items = models.ManyToManyField(Item, related_name='myuser')

当我写下面的代码

MyUser.items.add(item1)

我想知道是否添加或复制了它

JPG格式

简而言之,myuser.items将会是a set,这意味着即使我们强迫这样做也不会创建任何重复的条目


In [1]: from django.contrib.auth.models import User

In [2]: item = Item.objects.create(field_name="some_value")

In [3]: usr = User.objects.get(id=1)

In [4]: myuser = MyUser.objects.create(user=usr)

In [5]: myuser.items.count()
Out[5]: 0

In [6]: myuser.items.add(item)

In [7]: myuser.save()

In [8]: myuser.items.count()
Out[8]: 1

In [9]: myuser.items.add(item)

In [10]: myuser.save()

In [11]: myuser.items.count()
Out[11]: 1


在这里您可以看到,count当我们item一次又一次地添加同一实例时,并没有增加

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章