在Django之外的对象之间创建many_to_many关系以在db中添加伪数据

时间:2018-05-15 11:48:55

标签: django django-models

我正在使用faker库将数据广告到数据库。

我有两个模型实体和项目,它们之间有很多关系。 我想在Item和Entity之间创建一个随机关系。

item_list = Item.objects.all()

for item in item_list:
            item.entities = Entity.objects.order_by('?')[0]

实体是项目模型中存在的M2M;

class Item(models.Model)

 entities = models.ManyToManyField(Entity, related_name='items')

我收到以下错误:

TypeError: Direct assignment to the forward side of a many-to-many set is prohibited. Use categories.set() instead.

所以我试过

item.entity_set = Entity.objects.order_by('?')[0]
item.save()

没有错误,但没有创建关系

1 个答案:

答案 0 :(得分:1)

您应该在没有add

的情况下使用方法save
item.entities.add(Entity.objects.order_by('?')[0])

了解更多many_to_many