簡體   English   中英

管理站點上的Django NoReverseMatch錯誤

[英]Django NoReverseMatch error on admin site

使用管理網站處理圖像時,在重定向調用中出現以下錯誤:

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)),
...
]

並在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函數上。 有點不對勁!

反轉URL時,嘗試包括admin名稱空間。

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

您不必在視圖函數中使用reverse_lazyreverse應該起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM