2013-03-17 4 views
7

Ho un modello proxy il cui set di query è un sottoinsieme del suo padre. Tuttavia, quando lo chiamo, vengono restituiti gli oggetti del genitore.Gestione del gestore modelli non filtrante

Model Manager:

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

Proxy Modello:

class NewRequests(Engagement): 
    objects = NewRequestsManager() 

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

Vista:

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)) 

Qualsiasi aiuto è molto apprezzato. Non sono esattamente sicuro di cosa mi manchi qui.

risposta

14

Probabilmente solo un errore di battitura: get_queryset dovrebbe essere get_query_set, in modo da non sovrascrivere nulla.

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

Grazie Ric. Non c'è niente come sbattere la testa per un errore di battitura LOL. – chirinosky

6

Non è un errore di battitura: dev documentation utilizza get_queryset mentre 1.5 documentation utilizza get_query_set Suppongo che ci sia stato un cambiamento recente nella versione dev.

+0

Wow ha declassato il mio django per far funzionare altre cose e ho battuto la testa su questo><. –

Problemi correlati