【发布时间】:2021-08-28 23:58:17
【问题描述】:
我在我的项目中使用 Django,我想渲染 thank-you 页面。
但它应该有或没有参数。
urls.py
urlpatterns = [
....
path(r'thank-you?t=<type>?n=<name>', thank_you_view, name='thank-you'),
....
]
它适用于 :http://127.0.0.1:8080/thank-you%3Ft=teacher%3Fn=Ajay,%20Gaikwad 等网址
模板利用参数。
但不适用于没有参数的 url,例如:http://127.0.0.1:8080/thank-you
默认模板将在此处呈现。
我也尝试了一些正则表达式
path(r'thank-you(?t=<type>?n=<name>|'')', thank_you_view, name='thank-you'),
但它不起作用。
如果您使用下面的视图并使用模板渲染上下文,那么它将起作用。
views.py
def thank_you_view(request, *args, **kwargs):
context = {kwargs['type']: kwargs['name']}
return render(request, "light/thank-you.html", context=context)
编辑:
- 有什么方法可以在 url 中使用正则表达式,这样它就可以双向使用?
- 或者我们可以将参数设为可选?
【问题讨论】:
-
你找到解决办法了吗?
标签: python django django-views django-templates