我有3种型号 材料,计量单位,BIN_UOM'查询集' 对象有没有属性“ - Django的ORM问题
@with_author
class Material(models.Model):
version = IntegerVersionField()
code = models.CharField(max_length=30)
name = models.CharField(max_length=30)
slug = models.SlugField(max_length=80, blank=True)
description = models.TextField(null=True, blank=True)
materialuom = models.CharField(max_length=1,
choices=UOM_CHOICES)
creation_time = models.DateTimeField(auto_now_add=True, blank=True)
itemgroup = models.ForeignKey(ItemGroup, on_delete=models.PROTECT)
keywords = models.CharField(max_length=50,null=True, blank=True)
valid_from = models.DateTimeField(null=True, blank=True)
valid_to = models.DateTimeField(null=True, blank=True)
min_quantity = models.DecimalField(max_digits=19, decimal_places=10)
trigger_quantity = models.DecimalField(max_digits=19, decimal_places=10)
max_quantity = models.DecimalField(max_digits=19, decimal_places=10)
@with_author
class UOM(models.Model):
version = IntegerVersionField()
code = models.CharField(max_length=30)
name = models.CharField(max_length=30)
material = models.ForeignKey(Material)
description = models.TextField(null=True, blank=True)
@with_author
class UOM_BINUOM(models.Model):
version = IntegerVersionField()
UOM = models.ForeignKey(UOM)
BIN_UOM = models.ForeignKey(BIN_UOM)
quantityperunit = models.PositiveSmallIntegerField()
creation_time = models.DateTimeField(auto_now_add=True,blank=True)
在输入我有我的材质ID
使用Django ORM我想获取我材质ID的UOM_BINUOM的所有对象。
在SQL:
Select * from UOM_BINUOM where UOM_BINUOM.uom in (Select uom from UOM where UOM.material = material)
在ORM我想这样说:
uombinuom = UOM.objects.filter(material__in=material_id).uom_binuom_set.all().order_by('-id')
或类似这样的
material = get_object_or_404(Material, pk=material_id)
uom = material.uom_set.all().order_by('-id')
uombinuom = uom.uom_binuom_set.all().order_by('-id')
,但得到的错误
“查询集'物体没有属性ute'uom_binuom_set'
我在做什么错了,我该如何解决这个问题?
'material_id'是一个id列表,还是一个id? – Alasdair
material_id是单个标识 –