2015-12-19 1 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() будет возвращать только один объект, то здесь, в вашей модели будет несколько объектов ServiceProvider с таким же service_type.

+1

Спасибо, это сработало! – Cloud

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