我正在构建一个 Django API,其中 urls.py 中的路径之一是:path('device_id/<str:device_id>/readings/<int:num_readings>, views.results, name='results')
如果用户指定了设备 ID 但没有输入大量读数,我想避免获得 404。我希望将读数的默认值指定为 10。

此 url 连接到名为 结果的 View
def results(request, device_id, readings):
例如,如果用户访问:device_id/2132/readings/我想在 结果 View 中使用 device_id = 2132 和 readings=10
device_id/2132/readings/24我想在 结果 View 中使用 device_id = 2132 和 readings=24

最佳答案

添加另一个路径,您将默认值添加到 kwargs ,例如:

urlpatterns = [
    path(
        'device_id/<str:device_id>/readings/<int:num_readings>',
        views.results,
        name='results'
    ),
    path(
        'device_id/<str:device_id>/readings/',
        views.results,
        name='results10'
        kwargs={'num_readings': 10}
    ),
    # ...
]

所以这里的第二个 View 是一个没有 num_readings 变量的路径,但 kwargs 是一个包含要传递给 View 的附加(命名)参数的字典。

关于python - 如何为 Django 路径分配默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54505840/

10-11 06:18