2016-03-17 2 views
0

Я получаю следующее сообщение об ошибке на переадресации вызова при использовании моего администратора сайта, чтобы обработать изображение:Джанго NoReverseMatch ошибка администратора сайта

NoReverseMatch at /admin/restapi/checkuserimage/1 

Reverse for 'pendinguserimages' with arguments '()' and keyword arguments '{}' 
not found. 0 pattern(s) tried: [] 

В urls.py у меня есть:

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)), 
... 
] 

И in admin.py:

class UserImageListPendingView(ListView): 
    model = UserImage 
    queryset = UserImage.objects.filter(status=ImageBase.PENDING) 
    template_name = 'userimage_list_pending.html' 
    context_object_name = 'userimage_list' 
    paginate_by = 5 
    @method_decorator(staff_member_required) 
    def dispatch(self, *args, **kwargs): 
     return super(UserImageListPendingView, self).dispatch(*args, **kwargs) 

@staff_member_required 
def userimage_check(request, pk): 
    context = RequestContext(request) 
    user_image = get_object_or_404(UserImage, pk=pk) 
    if request.method == 'POST': 
     proc_image(request, user_image, user_image.user, Count.USER_IMAGES) 
     return HttpResponseRedirect(reverse_lazy('pendinguserimages')) 
    else: 
     context_dict = { 
      'pk': pk, 
      'username': user_image.user.username, 
      'image_url': user_image.image.url 
     } 
     return render_to_response('userimage_check.html', context_dict, context) 

def get_admin_urls(urls): 
    def get_urls(): 
     return patterns('', 
      url(r'^restapi/pendinguserimages/?$', 
       UserImageListPendingView.as_view(), name='pendinguserimages'), 
      url(r'^restapi/checkuserimage/(?P<pk>[0-9]+)/?$', 
       userimage_check, name='checkuserimage'), 
     ) + urls 
    return get_urls 

admin.site.get_urls = get_admin_urls(admin.site.get_urls()) 

Ошибка возникает в функции reverse_lazy. Что-то не в порядке!

+0

Правильно ли отпечаток в вашем коде? – rnevius

+0

Ну, я не предполагал, что get_admin_urls будет частью userimage_check, если это то, что вы имеете в виду? – tyebillion

ответ

1

Попробуйте включить пространство имен admin при изменении URL-адреса.

return HttpResponseRedirect(reverse('admin:pendinguserimages')) 

Вы не должны использовать reverse_lazy внутри функции зрения, reverse должен работать.

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