2016-03-23 5 views
1

Я немного застрял в Django (v1.9.4). Я создал две модели, Foo и Bar:Django foo_set does not work

class Foo(models.Model): 
    name = models.CharField(max_length=100) 
class Bar(models.Model): 
    foo_id = models.ForeignKey(Foo, on_delete=models.CASCADE) 
    title = models.CharField(max_length=300) 

перенести его (sqlite3) и несколько минут, потом понял, что это должно быть

Foo вместо foo_id:

foo = models.ForeignKey(Foo, on_delete=models.CASCADE) 

Я перенес его снова, с foo на этот раз, но даже после этой коррекции я не смог использовать

f = Foo.objects.filter(pk=1) 
f.bar_set.all() 

Есть ли способ справиться с этим?

Редактировать. сообщ Ошибка: Исключение Тип: AttributeError Исключение Значение: объект «Foo» не имеет атрибута «bar_set»

+0

Какие-либо сообщения об ошибках? – ilse2005

+0

Отредактировал мой вопрос, tnx – Prpaa

ответ

3

Это не работает, потому что filter возвращает QuerySet (который является списком), а не объект. Вы должны использовать get вместо filter, потому что get возвращает объект.

f = Foo.objects.get(pk=1) 
f.bar_set.all()