2015-12-19 29 views
1

我一直在試圖讓Django返回一個我的網站的通用列表。我用下面的代碼創建一個類圖:Django:Error-MultipleObjectsReturned生成通用列表視圖

class ServiceProviderListView(ListView): 
    context_object_name = 'contractor_list' 
    template_name = 'contractor_list.html' 

    def get_queryset(self): 
     self.service_type = get_object_or_404(ServiceProvider, service_type=self.args[0]) 
     return ServiceProvider.objects.filter(service_type=self.service_type) 

不過,我不斷收到以下錯誤:

Exception Type: MultipleObjectsReturned 
Exception Value:  
get() returned more than one ServiceProvider -- it returned 736! 

我複製的代碼從Django文檔,但它只是不工作。任何人都可以幫忙指出錯誤的根源嗎?

+0

不應該是'get_object_or_404(ServiceType ....「在第一行嗎? –

回答

1

您應該將其替換爲;

def get_queryset(self): 
    return ServiceProvider.objects.filter(service_type=self.args[0]) 

get()將返回只有一個對象,在這裏你的模型會有用相同的service_type多的ServiceProvider對象。

+1

謝謝!它的工作! – Cloud