我有以下网址
url(r'^view/1$', View1.as_view(), name='view'),
url(r'^view/2$', View2.as_view(), name='view'),
url(r'^view/3$', View3.as_view(), name='view'),
和观点视图
class View1(TemplateView):
pass
class View2(TemplateView):
pass
class View3(TemplateView):
pass
我的问题是如何基于正则表达式动态获取TemplateView
即,我想要类似的东西 url(r'^ view /(number)$',View(number).as_view(),name ='view'),
答案 0 :(得分:0)
django文档非常好。请在询问之前在那里搜索。这是Django Book的链接。 https://docs.djangoproject.com/en/dev/ref/forms/validation/#form-and-field-validation
你想要的是数字的正则表达式。
所以url(r'^view/(\d+)$', view)
然后你的观点必须带一个参数。
类似的东西:
def view(request, number):
if number == 1:
#do first thing
elif number == 2:
#do second thing
#etc...
当然,使用类似这样的东西的更合理的方式是将数字对应于某些数据(例如,存储在数据库中的对象的pk)。请记住,最好让您的网址具有某种意义。因此,如果有三个网址正在做一些完全不同的事情,也许它们应该看起来几乎相同,只有一个数字来区分它们。