每当我创建一个新的PreDefinedSet
时,它都会抓取我在数据库中添加的所有设备。
问题是如何将其设为空白,是否可以编辑多对多字段内的内容?
我的目标是创建一个类,其中包含可由用户预定义的设备列表。
以下是我的模特:
class Equipment(models.Model):
name = models.CharField(max_length = 50)
class PreDefinedSet(models.Model):
name = models.CharField(max_length = 100)
Equipments = models.ManyToManyField(Equipment)
答案 0 :(得分:0)
我想我明白你要做什么了。你的模型看起来很好 - 我没有看到为什么PreDefinedSet
会在创建时添加相关数据的任何原因(如果你没有做任何有趣的事情)。
class Equipment(models.Model):
name = models.CharField(max_length = 50)
class PreDefinedSet(models.Model):
name = models.CharField(max_length = 100)
equipments = models.ManyToManyField(Equipment, related_name='sets')
现在,如果你想操纵数据:
eq = Equipment.objects.get(name='something')
user_set = PreDefinedSet.objects.create(name='first_set')
user_set.equipments.add(eq)
user_set.equipments.all() # will return a QuerySet with one Equipment
另外请注意related_name
,因为您可以反向查询,如下所示:
eq.sets.all() # will return a QuerySet of the sets that tool is in
有关如何操纵M2M字段的更多信息:https://docs.djangoproject.com/en/dev/topics/db/models/#many-to-many-relationships