我正在运行一个显示网站的django项目。这是我的views.py
def news_desc(request,slug):
# request.session.flush()
news=NewsPort.objects.get(news_title_slug=str(slug))
return render(request,'accounts/newsdesc.html',{'news':news, 'slug':slug})urls.py
urlpatterns = [
path('signup/', views.signup, name='signup'),
path('login/', views.user_login, name='user_login'),
path('logout/', views.user_logout, name='user_logout'),
# path('', views.index, name='index'),
path('<int:pk>/',views.index_with_pk, name='index_with_pk'),
path('profile/<int:pk>/',views.profile_detail,name='profile_detail'),
path('profile/<int:pk>/edit/',views.profile_edit,name='profile_edit'),
path('profile/<int:pk>/wallet/',views.wallet_view,name='wallet_view'),
path('profile/<int:pk>/wallet/transac',views.history_transac,name='history_transac'),
path('news/all/', views.news_all, name='news_all'),
path('profile/<int:pk>/maps/',views.map_view,name='map_view'),
path('news/<slug:slug>/',views.news_desc,name='newsdesc'),]
当我运行时,我得到一个错误:
NoReverseMatch at /
Reverse for 'newsdesc' with keyword arguments '{'slug': ''}' not found. 1 pattern(s) tried: ['accounts/news/(?P<slug>[-a-zA-Z0-9_]+)/$']错误发生在模板渲染过程中。我无法登录、注册和注销。
下面是我的主urls.py:
router=routers.DefaultRouter()
router.register('profiles',views.ProfileView)
router.register('requests',views.RequestsView)
router.register('transactions',views.TransactionView)
router.register('login',views.LoginView)
router.register('wallets',views.WalletView)
router.register('purchasedtickets',views.PurchasedTicketView)
router.register('grocerycontents',views.PurchasedContentView)
router.register('merchants',views.MerchantView)
router.register('merchantitems',views.MerchantItemView)
router.register('groceries',views.GroceryView)
router.register('commodityitems',views.CommodityItemView)
router.register('transview',views.TransactionsView,base_name='Transactions_view')
router.register('tokenidview',views.TokenIDView,base_name='Token_view')
router.register('barcodetransfer',views.BarCodeView)
router.register('apptransfer',views.AppTransferView)
admin.autodiscover()
urlpatterns = [
path('admin/', admin.site.urls),
path('home/',include(router.urls)),
path('', views.index, name='index'),
path('accounts/',include('accounts.urls'),name='accounts'),
path('merchants/',include('merchants.urls'),name='merchants'),
path('groceries/', include('groceries.urls'), name='groceries'),
path('home/rest-auth/', include('rest_auth.urls')),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)任何帮助都将不胜感激。
发布于 2019-12-04 12:40:22
问题出在views.index使用的模板中。这很可能是您迭代NewsPort集合并生成指向newsdesc的链接的方式。或者,您的数据包含一个空字符串。在这种情况下,您要么没有设置它,要么它是一个测试工件。
发布于 2019-12-04 13:19:06
正常的详细视图将如下所示
def news_desc(request,slug):
news = get_object_or_404(NewsPort, slug=slug)
return render(request,'accounts/newsdesc.html',{'news':news})然后,您可以在列表视图中提供此详细信息视图url的链接,如下所示
<a href="{% url 'newsdesc' slug=slug %} ">Detail View</a>https://stackoverflow.com/questions/59168969
复制相似问题