我有这个型号.py你知道吗
class Sitename(models.Model):
#id = models.AutoField(primary_key=True) ## to be removed
site = models.CharField() ## find values
class Equipment(models.Model):
#id = models.AutoField(primary_key=True) ## to be removed
serialno = models.CharField() ## known values
class RSL(models.Model): ##Radio Station License
#id = models.AutoField(primary_key=True) ## to be removed
sitename = models.ForeignKey(Sitename)
equipment = models.ManyToManyField(Equipment)
我只知道Equipment
serialno
,我不知道正确的查询集?
到目前为止,我知道如何查询外键。你知道吗
sn = 'abc'
equip = Equipment.objects.get(serialno=sn)
rsl = RSL.objects.?????
sitename = Site.objects.get(pk=rsl.pk)
你知道设备序列号,所以用-
由于RSL类的
equipment
字段和Equipment
类是多个关系,因此可能有多个RSL类对象与一个设备对象相关。要获取查询集,请使用-(请通过检查
dir(equip)
中是否列出rsl_set
来检查rsl_set
是否是装备对象的方法。看看你的模型,很可能是。顺便说一句,您可以通过在定义中添加相关的\u name=“name you want”将其更改为所需的名称。 例如:equipment = models.ManyToManyField(Equipment, related_name = "rsl_objects")
这样您就可以通过
rsl_queryset = equip.rsl_objects.all()
访问它了现在您有了一个包含与equip对象相关的RSL对象的queryset。所以,迭代它们得到你想要的值-
相关问题 更多 >
编程相关推荐