2013-03-17 12 views
7

Mam model proxy, którego queryset jest podzbiorem jego elementu nadrzędnego. Jednak, gdy go wołam, obiekty rodzica są zwracane.Zestaw kwerend menedżera modeli nie filtrowania

Model Manager:

class NewRequestsManager(models.Manager):   
    def get_queryset(self): 
     return super(NewRequestsManager, self).get_queryset().filter(is_scoped=0) 

Proxy model:

class NewRequests(Engagement): 
    objects = NewRequestsManager() 

    class Meta: 
     proxy = True 
     app_label = 'myapp' 
     verbose_name = 'New Request' 

Zobacz:

def list(request): 
    new_requests = NewRequests.objects.all() 
    c = RequestContext(request, { 
      'cl': new_requests, 
    }) 
    t = loader.get_template('queue.html') 
    return HttpResponse(t.render(c)) 

Każda pomoc jest doceniana. Nie jestem do końca pewien, czego tu brakuje.

Odpowiedz

14

Prawdopodobnie tylko literówka: get_queryset powinna być get_query_set, więc niczego nie przesłonisz.

class NewRequestsManager(models.Manager):   
    def get_query_set(self): 
     return super(NewRequestsManager, self).get_query_set().filter(is_scoped=0) 
+1

Dzięki Ric. Nie ma to jak walić głową w literówkę LOL. – chirinosky

6

nie literówka: dev documentation wykorzystuje get_queryset natomiast 1.5 documentation wykorzystuje get_query_set Przypuszczam nastąpiła ostatnia zmiana w wersji dev.

+0

Wow zdegradowałem moje django, aby inne rzeczy działały i waliłem w głowę na tym><. –