我希望url有可选的url参数。主要网址是:
queue<std::string> lines = doWork();
std::sort(std::begin(lines), std::end(lines));
但是在主题id之后我希望能够添加始终为数字的可选参数:
url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)$', views.subject, name="subject_id"),
我甚至不确定是否正确,因为我不知道如何设置参数的数字。因此,在传递参数之后,我想要(模板?)或者视图来读取数字(这是模型的ID号)并将css类添加到url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)/(?P<digit>\d+)/$'', views.subject, name="subject_id_optional"),
到该模型。
我将如何实现这一点以及如何在视图或模板中处理它,无论哪个地方更有意义?
答案 0 :(得分:1)
我认为你可以只有两个指向相同视图的网址,一个带有可选参数,另一个没有:
urls = [
url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)/(?P<digit>\d+)/$', views.subject, name="subject_id_optional"),
url(r'^(?P<letnik_id>[1-4])/(?P<classes_id>[A-G])/(?P<subject_id>[\w\-]+)$', views.subject, name="subject_id"),
]
def subject(request, optional_parameter=''):
return render(
request,
"template.html",
{
"optional_parameter": optional_parameter
}
)
然后您可以像传入上下文中的任何其他变量一样获取模板中的参数。