2017-10-22 121 views
0

我是新来的Django,我想解决一个NoReverseMatch问题。我认为这与意见有关,但我对此很陌生。Django查看错误 - NoReverseMatch

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

任何帮助,将不胜感激应用内

主urls.py

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

views.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 

错误

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. 

的源代码/文件结构 - https://github.com/Shopify/shopify_django_app

类似的问题,但没有工作的内部进行身份验证(要求)解决方案 - https://github.com/Shopify/shopify_django_app/issues/13

+0

你可以在应用程序内编辑视图吗? –

回答

0

变化:

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

刚刚尝试过。我得到''shopify_app'不是注册名称空间' 是否需要修改任何视图? @Alexander Tyapkov – NewPieGuy

+0

@NewPieGuy是否将shopify_app添加到设置中的应用程序中? –

+0

嗯。如果你指的是根settings.py - 是的,它在那里。 – NewPieGuy