简体   繁体   English

在Django中仅列出项目作为URL参数

[英]Only list items as url parameters in django

Id like to have url variable that would only accept items from list, but i dont know how to implement it in urls. 我想拥有只接受列表中的项目的url变量,但是我不知道如何在url中实现它。

list = ['foo', 'bar', 'test', 'test2', 'random']

and urls.py, that i dont know how to implement list items: 和urls.py,我不知道如何实现列表项:

url(r'^(?P<list_item>)/$', views.letnik, name="list_item"),

I would really appreciate it if you could help me out! 如果您能帮助我,我将不胜感激!

You can restrict this in views easily. 您可以轻松地将其限制在视图中。 In your view "letnik" can handle this by checking kwargs. 在您看来,“ letnik”可以通过检查kwargs来解决此问题。
kwargs.get('list_item') will have the pattern matched. kwargs.get('list_item')将具有匹配的模式。
You can check whether the parameter in url matches one in your list and if it does not you can either redirect to another url or throw 404 status. 您可以检查url中的参数是否与列表中的参数匹配,如果不匹配,则可以重定向到另一个url或抛出404状态。

One way to do this is by restricting in urls.py is as follows: 一种方法是通过限制urls.py如下所示:

url(r'^(?P<list_item>foo|bar|test|test2|random)/$', views.letnik, name="list_item"),

But as the list expands it is better to handle it in views. 但是随着列表的扩展,最好在视图中进行处理。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM