2014-02-08 5 views
0

Я хочу захватить набор записей своим внешним ключом, используя термин фильтра. Но почему-то это не работает. Я показываю модели здесь:Фильтрация Django QuerySet by ForeignKey

class MessageMonitoring(models.Model): 
    MyID     = models.ForeignKey(AboutMe, null=True, blank=True, related_name='MessageMonitor') 

class AboutMe(models.Model): 
    MyGender     = models.CharField(max_length=50, choices = GENDER_CHOICES) 

На мой взгляд, я хотел бы сделать следующее:

recipient = AboutMe.objects.get(pk=toid) 
monitor_recip = MessageMonitoring.objects.filter(MessageMonitor_owner=recipient) 

Но я получаю следующее сообщение об ошибке:

Cannot resolve keyword 'MessageMonitor_owner' into field. Choices are: MyID, ... 

ответ

3

Я m не уверен, где вы получаете MessageMonitor_owner - это ни название модели, ни поле на модели, которую вы показали. Для фильтрации с использованием моделей и внешнего ключа отношения, которые вы показываете, используйте:

monitor_recip = MessageMonitoring.objects.filter(MyID=recipient) 

Или, если вам не нужен объект получателя, для чего-нибудь еще в представлении, сэкономить использование БД путем фильтрации с его PK, а не извлечения объекта:

monitor_recip = MessageMonitoring.objects.filter(MyID_id=toid) 
+0

Спасибо. Я забыл об этом! – disruptive

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