2014-04-22 5 views
0

Я работаю над базовым приложением, и я застрял в отображении некоторой информации. Пожалуйста, обратите внимание:Django - фильтрация во взглядах

Модели:

class Companies(models.Model): 

    name = models.CharField() 
    address = models.CharField() 

    def __unicode__(self): 
     return self.name 


class Payments(models.Model): 

    company = models.ForeignKey(Companies)  
    year = models.CharField(choices=YEAR)  
    month = models.CharField(choices=MONTHS)  
    date = models.DateField(auto_now_add=True) 

Я хочу, чтобы вид на котором будет отображаться только те компании, которые не платят абонентскую плату.

Так I`ve начал так:

def checks(request):  
    i = datetime.datetime.now()  
    an_c = i.strftime('%Y')  
    comp = Companies.objects.all()  
    pay1 = Payments.objects.filter(an=an_c, month='01') 

Но в шаблоне я не знаю, как фильтровать список «Комп». Я хочу отобразить в шаблоне все записи из «comp», кроме тех, которые указаны в «pay1.company»

ответ

2

Вы не сделали бы этого в шаблоне. Делайте все это с точки зрения:

pay1 = Payments.objects.filter(an=an_c, month='01') 
comp = Companies.objects.exclude(payments__in=pay1) 

(Стиль примечание:. Классы модели Django обычно называются в единственном числе, а не во множественном числе)

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