2015-06-06 37 views
0

瀏覽次數:如何在django-views中創建多個過濾器?

def home(request): 
    terminate = Tvserie.objects.filter(status='Terminata' or status='Cancellata').order_by('?')[0:4] 

    return render_to_response('Home.html',{'terminate':terminate}) 

這是錯誤的,爲什麼呢? 如何創建屬性「status」的多重過濾器?

型號:

class Tvserie(models.Model): 
     status_choices = (('Non iniziata', 'Non iniziata'),('In corso', 'In corso'), 
         ('In pausa', 'In pausa'),('Rinnovata', 'Rinnovata'), 
         ('Cancellata', 'Cancellata'),('Terminata', 'Terminata')) 
     status = models.CharField(max_length = 30, choices=status_choices) 

回答

-1

這裏是回答你的問題:)

Q objects

不是傳遞要在過濾中使用明確的參數,你傳遞一個Q object封裝這樣的信息。此外,您還可以使用|&經營者通過orand運營商加入。

在你的情況下,它應該是這樣的:

from django.db.models import Q 

terminate = Tvserie.objects.filter(Q(status='Terminata') | Q(status='Cancellata')).order_by('?')[0:4] 
0

您可以使用in

terminate = Tvserie.objects.filter(status__in=['Terminata''Cancellata']).order_by('?')[0:4] 
+0

是的!謝謝! – JacopoWoty

+0

不客氣。現在,如果您可以將此答案標記爲已接受.. –

+0

另一個問題 - > http://stackoverflow.com/questions/30686089/how-can-i-save-the-data-even-if-their-value-in -a-form-is-null – JacopoWoty