在 Django 1 中,我曾经有这样的 url 选择:
url('meeting/(?P<action>edit|delete)/', views.meeting_view, name='meeting'),
我如何在 Django 2.0 中使用 语法执行此操作:
也许是这样的?
path('meeting/(<action:edit|delete>)/', views.meeting_view, name='meeting'),
如果我理解的话文档 https://docs.djangoproject.com/en/dev/ref/urls/#re-path,您的第一个语法应该开箱即用。
无论如何,您可以按照以下方式使用新语法:
第一个文件=创建一个Python包converters
并添加edit_or_delete.py
接着就,随即:
import re
class EditOrDeleteConverter:
regex = '(edit|delete)'
def to_python(self, value):
result = re.match(regex, value)
return result.group() if result is not None else ''
def to_url(self, value):
result = re.match(regex, value)
return result.group() if result is not None else ''
并为您的urls.py
文件,这个:
from django.urls import register_converter, path
from . import converters, views
register_converter(converters.EditOrDeleteConverter, 'edit_or_delete')
urlpatterns = [
path('meeting/<edit_or_delete:action>/', views.meeting_view, name='meeting'),
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)