2015-10-01 3 views
0

Querysets можно искать через верхние уровни, но я хочу отменить это. Например:Django get Foreignkey Reverse Queryset

Вместо поиска модели товара для репортера. Я хочу, чтобы модель репортера показала мне связанные с ней модели статей. Я просмотрел Документы, но не нашел ничего полезного.

Модель:

from django.db import models 

class Reporter(models.Model): 
    # ... 
    pass 

class Article(models.Model): 
    reporter = models.ForeignKey(Reporter) 

Просмотров:

article = Article.objects.filter(reporter__name='somename') 

Что я хочу, не меняя модели:

reporter = Reporter.objects.filter(name='somename', Article) 
#show all Articles from somename 

ответ

2

Вы используете функциональность связанного имени.

articles = Reporter.objects.get(name='somename').article_set.all() 

Если у вас уже есть репортер, это еще проще:

articles = my_reporter.article_set.all() 
+0

Спасибо, отлично работает, именно то, что я искал. – dk1990

+0

дополнительно вы можете найти здесь дополнительную информацию https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ForeignKey.related_name – BloodyD

0

Вы должны написать код, как это;

reporter_ids = Reporter.objects.filter(name='somename').values_list('id', flat=True) 
article = Article.objects.filter(reporter_id__in=reporter_ids) 
+0

Спасибо, но я пытаюсь избежать двух объектов. – dk1990

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