日期/时间值的 Django URL 转换器

2024-05-03

我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象。

如果我手动输入 URL,它们会按预期工作,但尝试为其生成 URL 时找不到匹配项。

我的转换器很简单:

from django.utils.timezone import datetime
from datetime import time

class DateConverter:
    regex = '[0-9]{4}-[0-9]{2}-[0-9]{2}'

    def to_python(self,value):
        return datetime.strptime(value,"%Y-%m-%d")

    def to_url(self,value):
        return value.strftime("%Y-%m-%d")

class TimeConverter:
    regex = '[0-9]{4}'

    def to_python(self,value):
        t = datetime.strptime(value,"%H%M")
        return time(t.hour,t.minute)

    def to_url(self,value):
        return value.strftime("%H%M")

在我的模板中,我有一些嵌套循环,它们在我调用的可用时间段中循环url对于每个时隙组合:

 <a href="{% url 'club_boats:trip_booking' trip_date slot.slot.start_time slot.slot.end_time boat.boat.pk %}">Join</a>

My urls.py文件是:

from django.urls import path, register_converter

from . import converters, views

register_converter(converters.DateConverter, 'date')
register_converter(converters.TimeConverter,'time')

urlpatterns = [
    path('<int:boat_id>',views.detail,name='detail'),
    path('<date:trip_date>/',views.day_view,name='day_view'),
    path('<date:trip_date>/<time:trip_start_time>/<time:trip_end_time>/<int:boat>/',views.trip_booking,name='trip_booking'),
    path('', views.day_view, name='day_view')
]

我已经确认数据类型与预期相匹配(时间、日期时间等),但反向转换似乎没有发生。

当我尝试加载包含上述内容的模板时url调用我收到 NoReverseMatch 错误:

Reverse for 'trip_booking' with arguments '(datetime.datetime(2019, 7, 1, 0, 0), datetime.time(9, 0), datetime.time(12, 30), 1)' not found. 1 pattern(s) tried: ['club_boats/(?P<trip_date>[0-9]{4}-[0-9]{2}-[0-9]{2})\\/(?P<trip_start_time>[0-9]{4})\\/(?P<trip_end_time>[0-9]{4})\\/(?P<boat>[0-9]+)\\/$']

显然它看到了模式,但缺少了一些东西。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日期/时间值的 Django URL 转换器 的相关文章

随机推荐

  • POSIX:FreeBSD 与 Linux 中的管道系统调用

    在 Linux 2 6 35 22 generic 中 man pipe指出 pipeline 创建一个管道 一个可用于进程间通信的单向数据通道 在 FreeBSD 6 3 RELEASE p5 中 man pipe指出 pipeline
  • PostgreSQL 选择结果大小

    我在 PostgreSQL 数据库中有一个表 并从该表中进行一些限制的选择 并且我想知道该选择有多少磁盘空间 我知道有一个postgres函数pg total relation size这给了我数据库中某个表的大小 但是如何找到 子表 的大
  • 将新形状传递给“np.reshape”

    Within numpy ndarray reshape https docs scipy org doc numpy reference generated numpy ndarray reshape html the shape参数是一
  • jquery datetimepicker 24小时时间格式

    我正在使用 datetimepicker js 来选择 jquery 的日期和时间 如何将时间格式从 12 小时制更改为 24 小时制 我得到了答案 您只需要在 24 小时制的格式中提及 HH mm 或在 12 小时制的格式中提及 hh m
  • 数据表到 JSON [重复]

    这个问题在这里已经有答案了 我最近需要将数据表序列化为 JSON 我现在仍然使用 Net 2 0 因此我无法在 Net 3 5 中使用 JSON 序列化器 我想这肯定是以前做过的 所以我上网查了一下found http www codepr
  • sed:更改 .yml 文件中环境属性的值

    我有一个 yml 文件 用于配置应用程序的环境属性 如下所示 env1 prop1 value1 prop2 value2 propn valuen env2 prop1 value1 prop2 value2 prop3 value3 p
  • jquery中的三美元符号是什么?

    我正在尝试调试某人的代码 并遇到了这个 ajax url ajax url param context formDialog success function data this html data BindPopupFormEvents
  • 当 URL 可在浏览器中访问时,SSH Curl 不起作用

    This post is linked with another post of mine still unsolved Laravel 作曲家更新 连接被拒绝 https stackoverflow com questions 52404
  • 为什么 gettext 没有数据库存储选项?

    我正在使用 Django 在基于 Web 的应用程序上进行一些 i18n 操作 该应用程序使用 gettext 作为其 i18n 基础 翻译应该存储在数据库中似乎是一个显而易见的想法 而且并不难做到 但文件系统上的 po 文件仍在使用 为什
  • 让 React 在表单输入字段下显示单独的错误消息

    我正在提交一个返回一系列错误的表单 但我无法弄清楚如何让每个单独的错误出现在正确的输入字段下 现在 所有错误都会打印在每个输入字段下 我在用着react bootstrap 任何帮助 将不胜感激 getValidationState var
  • 在 django 中构建动态表单

    我正在尝试根据存储在数据库中的字段及其定义动态构建一个表单 在我的数据库中 我定义了 1 个带有一些标签的复选框和 1 个带有一些标签的文本字段 如何根据数据库中的数据在我的视图中动态构建表单 Thanks 以下是我在 EuroDjango
  • 如何/在哪里发布 Python 包

    如果一个人创建了一个有用的 Python 包 那么如何 在哪里发布 宣传它以供其他人使用 我已经把它放到了 github 上 但几周后谷歌也没有找到它 包装整洁完整 我制作它供我个人使用 不与其他人分享将是一种耻辱 这是 PyPI 指南 h
  • 如何在cvxpy中编写多个约束?

    我想在 cvxpy 下的优化问题中添加许多约束 在 matlab 中 我可以通过添加一行 subject to 然后使用 for 循环来生成约束 我怎样才能在 cvxpy 中做同样的工作 因为 cvxpy 中没有 服从 概念 有什么建议吗
  • 尝试在 Windows 上执行 package.json 中的脚本会引发 JScript 错误

    所以我正在尝试构建 javascriptair site 在 的里面package json有一个 npm 脚本指向 javascript 命令 package scripts 找到该存储库https github com kentcdod
  • Android 4.3 KeyStore - 尝试检索密钥时链== null

    下列的这个博客 http nelenkov blogspot de 2013 08 credential storage enhancements android 43 html 我使用此代码来创建和存储KeyPair在 Android 密
  • PhpStorm Docker PHPUnit 数据库

    I setup https blog jetbrains com phpstorm 2016 11 docker remote interpreters PhpStorm PHP PHPUnit 与 Docker 我在 PhpStorm 数
  • TarsosDSP 音高分析傻瓜式教程

    我正在开发一个分析声音文件音调的程序 我遇到了一个非常好的 API 称为 TarsosDSP 它提供了各种音高分析 然而 我在设置它时遇到了很多麻烦 有人可以向我展示一些有关如何使用此 API 特别是 PitchProcessor 类 的快
  • WSL 中的默认权限和所有权

    我目前正在从 Ubuntu 18 04 VirtualBox 切换到 WSL 一切都已启动并运行 以拥有完整的 Web 开发环境 不幸的是 文件权限和所有权现在对我来说是一个问题 免责声明 我知道在服务器环境中这会非常糟糕并且不会被完成 这
  • 原生编程对于移动开发有何优势?

    我需要为一家公司在一些主要的移动操作系统上开发应用程序 特别是 iOS Android 和 WP7 我最初计划为三种不同的操作系统编写三个独立的应用程序 每个应用程序都使用本机 SDK 然而 这样做有什么好处吗 有许多可用的跨平台工具 Se
  • 日期/时间值的 Django URL 转换器

    我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象 如果我手动输入 URL 它们会按预期工作 但尝试为其生成 URL 时找不到匹配项 我的转换器很简单 from django utils