2016-01-31 3 views
0

Скажем, у меня есть следующие модели:фильтр внешнего ключа в моделях Джанго

class VKLink(models.Model): 
    user_id = models.IntegerField() 
    name = models.CharField(max_length=200) 


class BaseComment(models.Model): 
    owner = models.ForeignKey(VKLink) 
    from_id = models.IntegerField(default=0) 
    text = models.CharField(max_length=3000) 

    def is_own(self): 
     return self.from_id == self.owner.user_id 

BaseComment считается как «собственный комментарий», если from_id равно ссылки user_id. Я хочу получить все BaseComments, которые являются «собственными». Как я могу выбрать его в терминах моделей django?

BaseComment.objects.filter(from_id=owner__user_id) не работает, так как owner__user_id не определен на этом этапе.

+0

Вы * возможно * необходимо использовать 'экстра()' – gtlambert

ответ

3

Вы можете использовать F() expression:

BaseComment.objects.filter(from_id=F('owner__user_id')) 
Смежные вопросы