Как охватить отношения поиска в Django? - PullRequest
1 голос
/ 30 сентября 2010

Где я покажуся в следующем поиске?

Мои модели:

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()
    ...

Теперь я хочу получить все объекты Stock с Item.item_code

stock_items = Stock.objects.filter(item__item_code__contains='101')

Я получаю ошибку:

FieldError: Cannot resolve keyword 'item' into field. Choices are: id, item_code, qty, restock_level, userid 

Чего мне не хватает?

Гат

1 Ответ

4 голосов
/ 30 сентября 2010

Вы должны использовать следующее:

stock_items = Stock.objects.filter(item_code__item_code__contains='101')

Первое имя поля - это поле в модели Stock, в данном случае item_code, а не item.

Для того, чтобы использовать его так, как вы.Вам необходимо изменить модель Stock на следующую:

Class Stock(models.Model):
    item = models.ForeignKey(Item)
    qty = models.IntegerField()

Тогда это будет работать:

stock_items = Stock.objects.filter(item__item_code__contains='101')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...