在Django 4.0中,你可以通过在URL模式中指定默认值来为视图参数提供默认值。这可以通过使用<type:variable>语法和path()或re_path()函数完成。以下是一些示例:

1. 使用path()函数:
# myapp/urls.py
from django.urls import path
from .views import my_view

urlpatterns = [
    # 如果没有提供参数,category将默认为'uncategorized'
    path('categories/<str:category>/', my_view, {'category': 'uncategorized'}, name='category_detail'),
]

在这个例子中,<str:category>定义了一个字符串转换器,而{'category': 'uncategorized'}为参数category指定了默认值。

2. 使用re_path()函数:
# myapp/urls.py
from django.urls import re_path
from .views import my_view

urlpatterns = [
    # 如果没有提供参数,article_id将默认为1
    re_path(r'^articles/(?P<article_id>\d+)/$', my_view, {'article_id': 1}, name='article_detail'),
]

在这个例子中,(?P<article_id>\d+)使用正则表达式匹配一个或多个数字,并通过{'article_id': 1}为参数article_id指定了默认值。

指定默认值的好处是,如果在URL中没有提供相应的参数,Django将使用默认值,这样可以防止因为缺少参数而导致的错误。


转载请注明出处:http://www.zyzy.cn/article/detail/7206/Django