我有2个型号,像这样:
class Subs(models.Model):
tag = models.CharField(max_length=100)
class Users(models.Model):
name = models.CharField(max_length=100)
tags = models.ManyToManyField(Subs)
我需要更新标签字段 - 添加新值。如何使用update_or_create方法更新用户的实例?
例如:
tag_1 = Subs.object.get(pk=1)
Users.objects.update_or_create(name='test_user', tags=tag_1)
如果用户'test_user'不存在,则必须创建它,或者如果存在,则必须将tag_1添加到此用户。
在tags
中添加update_or_create
是不可能的,因为tags
是ManyToManyField
,因此涉及数据库查询的中间表。
但是你可以使用get_or_create
在两行中完成:
user = Users.objects.get_or_create(name='test_user')
user.tags.add(tag_1)