如何在django中保存多对多关系

2024-02-12

如何为具有多对多字段的 Django 模型创建对象? https://stackoverflow.com/questions/6996176/how-to-create-an-object-for-a-django-model-with-a-many-to-many-field

从上面的问题我知道我们只能稍后保存多对多字段。

模型.py

class Store(models.Model):
   name = models.CharField(max_length=100)

class Foo(models.Model):
   file = models.FileField(upload_to='')
   store = models.ManyToManyField(Store, null=True, blank=True)

views.py

new_track.file = request.FILES['file']
new_track.save()

文件上传工作正常,然后我修改代码以添加商店,然后我就在这里......

现在我确信数据库返回 id 在这里。然后我尝试使用下面的代码,但这只给了我错误

    x = new_track.id
    new = Foo.objects.filter(id=x)
    new.store.id = request.POST['store']
    new.save()

好的,这里的错误是'QuerySet' object has no attribute 'store'

我也尝试过add现在也正在发挥作用。 所以问题是如何保存()


保存具有多对多关系的对象的正确方法是:

...
new_track.file = request.FILES['file']
new_track.save()

new_store = Store.objects.get(id=int(request.POST['store']))
new_track.store.add(new_store)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在django中保存多对多关系 的相关文章

随机推荐