2013-05-15 3 views
1

Я хотел бы показать все избранные подключенные пользователи. Каждый пользователь может добавить свои собственные избранные. Я создал модель для управления этим действием. В этом, у меня есть два внешних ключа. Один для пользователя, а второй для «любимого».Django, отмените модель с несколькими внешними ключами

models.py

class Favorite(models.Model): 
    user = models.ForeignKey(User) 
    drud = models.ForeignKey(Drud) 

    def __unicode__(self): 
     return self.drud.secure_key 

На мой взгляд, я хочу, чтобы показать все любимые Drud подключенного пользователя. Я пытался сделать что-то вроде этого:

views.py

favorite = Favorite.objects.filter(drud=[d.secure_key for d in Drud.objects.filter(user=request.user)]) 

Но, что делает работу ...

+0

«Это действительно работает ...» 1) Предположительно, вы имели в виду, что это не работает. 2) Пожалуйста, скажите ошибку, которую вы получаете или что происходит, что не является результатом, которого вы хотите. – Danack

ответ

0

Вы можете сделать:

fav_druds = request.user.favorite_set.values_list('drud', flat=True) 

В шаблоне вы можете do:

{% for drud in fav_druds %} 
    {{drud.id}}: {{drud.secure_key}} 
{% endfor %} 

Редактировать:

favs = request.user.favorite_set.all() 

{% for fav in favs %} 
    {{fav.drud.id}}: {{fav.drud.secure_key}} 
{% endfor %} 
+0

Это вернет список объектов 'Drud' или' Drud'? – stalk

+0

Drud objects ... – karthikr

+0

он работает, но я восстанавливаю все ID, и я не знаю, как показать в моих шаблонах, если они несколько Druds – Adrihein

Смежные вопросы