Django查看错误 - NoReverseMatch

时间:2017-10-22 00:32:32

标签: python django django-views views

我是django的新手,我正在尝试解决from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^login/', include('shopify_app.urls')), url(r'^', include('home.urls'), name='root_path'), url(r'^admin/', admin.site.urls), ] 问题。我认为这与观点有关,但我是新手。

该代码来自几年前流行的锅炉板回购。请注意:我尝试读取堆栈溢出的每个答案,并且已经卡住了几个小时。

非常感谢任何帮助

主要urls.py

from django.conf.urls import url
from shopify_app import views

urlpatterns = [
        url(r'^$', views.login, name='shopify_app_login'),
        url(r'^authenticate/$', views.authenticate, name='shopify_app_authenticate'),
        url(r'^finalize/$', views.finalize, name='shopify_app_finalize'),
        url(r'^logout/$', views.logout, name='shopify_app_logout'),
]
应用内的

urls.py

from django.shortcuts import redirect, render
from django.contrib import messages
from django.core.urlresolvers import reverse
from django.conf import settings
import shopify

def authenticate(request):

    shop = request.GET.get('shop')

    print('shop:', shop)

    if shop:
        scope = settings.SHOPIFY_API_SCOPE
        redirect_uri = request.build_absolute_uri(reverse('shopify_app.views.finalize'))
        permission_url = shopify.Session(shop.strip()).create_permission_url(scope, redirect_uri)
        return redirect(permission_url)

    return redirect(_return_address(request))



def finalize(request):
    shop_url = request.GET['shop']
    try:
        shopify_session = shopify.Session(shop_url)
        request.session['shopify'] = {
            "shop_url": shop_url,
            "access_token": shopify_session.request_token(request.REQUEST)
        }

    except Exception:
        messages.error(request, "Could not log in to Shopify store.")
        return redirect(reverse('shopify_app.views.login'))

    messages.info(request, "Logged in to shopify store.")

    response = redirect(_return_address(request))
    request.session.pop('return_to', None)
    return response
应用内的

views.py

NoReverseMatch at /login/authenticate/
    Reverse for 'shopify_app.views.finalize' not found. 'shopify_app.views.finalize' is not a valid view function or pattern name.
    Request Method: GET
    Request URL:    http://localhost:8000/login/authenticate/?csrfmiddlewaretoken=zEwwHeTfxK7apbAp3dSxsehsafxqjSgEM4t&shop=piepiedev.myshopify.com&commit=Install
    Django Version: 1.11.6
    Exception Type: NoReverseMatch
    Exception Value:    
    Reverse for 'shopify_app.views.finalize' not found. 'shopify_app.views.finalize' is not a valid view function or pattern name.

错误

storage

源代码/文件结构 - this

类似的问题,但没有工作的解决方案 - https://github.com/Shopify/shopify_django_app

1 个答案:

答案 0 :(得分:0)

更改内部身份验证(请求):

redirect_uri = request.build_absolute_uri(reverse('shopify_app:shopify_app_finalize'))