我在下面的查找中哪里出错了?
我的模型:
Class Item(models.Model):
item_code = models.CharField(max_length=10)
name = models.CharField(max_length=255)
....
Class Stock(models.Model):
item_code = models.ForeignKey( Item )
qty = models.IntegerField()
...
Run Code Online (Sandbox Code Playgroud)
现在我想用 Item.item_code 获取所有 Stock 对象
stock_items = Stock.objects.filter(item__item_code__contains='101')
Run Code Online (Sandbox Code Playgroud)
我收到错误:
FieldError: Cannot resolve keyword 'item' into field. Choices are: id, item_code, qty, restock_level, userid
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
加特
您必须使用以下内容:
stock_items = Stock.objects.filter(item_code__item_code__contains='101')
Run Code Online (Sandbox Code Playgroud)
第一个字段名称是 Stock 模型中的字段,在本例中是 item_code,而不是 item。
为了以你所做的方式使用。您必须将 Stock 模型更改为以下内容:
Class Stock(models.Model):
item = models.ForeignKey(Item)
qty = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
那么这将起作用:
stock_items = Stock.objects.filter(item__item_code__contains='101')
Run Code Online (Sandbox Code Playgroud)