【发布时间】:2019-11-20 10:40:09
【问题描述】:
我的网址有问题,首先这里是我的 urls.py:
from .views import (
CouponListView, CouponDetailView, buy_coupon, UserCouponListView, CouponOnResaleCreateView,
CouponOnResaleListView,
)
from django.urls import path
coupons_patterns = ([
path('', CouponListView.as_view(), name = 'list'),
path('<int:pk>/<slug:slug>/', CouponDetailView.as_view(), name = 'detail'),
path('create/<int:pk>/<slug:slug>/', CouponOnResaleCreateView.as_view(), name = 'create'),
path('<slug:slug>/', UserCouponListView.as_view(), name = 'user'),
path('coupon/<int:pk>/<slug:slug>/buy/', buy_coupon, name = 'buy_coupon'),
], 'coupons')
好吧,可以这么说,我想添加另一种 url 的“模式”,也就是说,我拥有的 url 的“模式”是:coupons:name,我想添加一个这样的:coupons_on_resale:name,但是无需创建另一个应用程序。
我该怎么做?我想到创建其他模式,就像我之前展示的模式并包含它,但这是一种好的做法吗?还有其他方法吗?
我希望我的网址中有一个可扩展、干净且易于维护的结构。
更新::
我是这么想的,但并没有让我很信服:
from .views import (
CouponListView, CouponDetailView, buy_coupon, UserCouponListView, CouponOnResaleCreateView,
CouponOnResaleListView,
)
from django.urls import path, include
coupons_patterns = ([
path('', CouponListView.as_view(), name = 'list'),
path('<int:pk>/<slug:slug>/', CouponDetailView.as_view(), name = 'detail'),
path('<slug:slug>/', UserCouponListView.as_view(), name = 'user'),
path('coupon/<int:pk>/<slug:slug>/buy/', buy_coupon, name = 'buy-coupon'),
path('resale/', include(([
path('create/<int:pk>/<slug:slug>/', CouponOnResaleCreateView.as_view(), name = 'create'),
], 'resale')))
], 'coupons')
提前感谢您的建议!
【问题讨论】:
标签: python django django-rest-framework django-urls