简体   繁体   English

Django模型反向查询

[英]Django Model Reverse querying

I have 4 models, 1) Item: describes the name and the value of the item. 我有4个模型,1)项目:描述项目的名称和值。 I can register new items completely independently. 我可以完全独立注册新项目。 2)A Line Item consists basically in one Item and the quantity of that specific item. 2)订单项基本上由一个项目和该特定项目的数量组成。 3)Inventory: Inventory is a bunch LineItems. 3)库存:库存是一堆LineItems。 4) Survivor is just a user who owns the Inventory. 4)幸存者只是拥有库存的用户。 I not able to filter backwards the inventory. 我无法向后过滤库存。 Example: I want to get all the itens that the "x" user´s inventory has on it. 示例:我想获取“ x”用户库存上的所有迭代。 Survivor is my user. 幸存者是我的用户。 Sorry for my bad english. 对不起,我的英语不好。

class Itens(models.Model):
    item_name = models.CharField(max_length=50)
    points_value = models.FloatField(default=0)
    def __str__(self):
        return self.item_name

class LineItem(models.Model):
    itemln = models.ForeignKey(Itens,on_delete=models.CASCADE,related_name='itens_contidos')
    quantity = models.IntegerField(default=0)
    inventory_ln = models.ForeignKey("Inventory",on_delete=models.CASCADE)

class Inventory(models.Model):

    survivor_inventory = models.OneToOneField(Survivor,on_delete=models.CASCADE)

    def __str__(self):
        return self.survivor_inventory.name +' s inventory'


class Survivor(models.Model):

    #id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    age = models.PositiveIntegerField(default=0)
    ...
Iten.objects.filter(itens_contidos__inventory__survivor_inventory=my_survivor)

Note, your Inventory model is a bit strange - especially the survivor_inventory field; 注意,您的库存模型有点奇怪-尤其是survivor_inventory字段; it points at a Survivor object, so it should probably just be called survivor . 它指向一个Survivor对象,因此它可能应该被称为survivor

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM