繁体   English   中英

将日期时间 object 分配为 url 参数

[英]Assigning a datetime object as the url parameter

我想使用日期过滤器将 Datetime 类型的值作为参数提供给 url。

我的 url 一定是这样的: /account/detail-of-cash-flow/2020-8-10

此命令: {{item.date_field|date:'Ym-d'}} = '2020-8-10'。 但是,当我将此命令实施到模板 url 时,它不起作用。

模板.html

{% for item in cash_flow_data %}

    <tr class='clickable-row' data-href="{%  url 'account:detail_of_cash_flow' item.date_field|date:'Y-m-d' %}">     
        <td>{{ item.date_field }}</td>
        <td>{{ item.EUR }}</td>
        <td>{{ item.USD }}</td>
        <td>{{ item.GBP }}</td>
        <td>{{ item.TRY }}</td>
    </tr>

{% endfor %}

网址.py

app_name = "account"
urlpatterns = [
    path('daily-cash-flow/', views.daily_cash_flow, name = "daily_cash_flow"),
    path('detail-of-cash-flow/<slug:slug>/', views.detail_of_cash_flow, name = "detail_of_cash_flow")
]

我希望我能够解释我的问题。

在您的项目 model 添加方法,它将返回您需要的格式

class ItemModel(models.Model):
    ...
    def get_url_date(self):
        return self.date_field.strftime("%Y-%m-%d")

然后在模板中你可以使用

<a href="{%  url 'account:detail_of_cash_flow' item.get_url_date %}">link</a>

更新:根据您的上下文,您有几种变体

  1. 更新您的上下文数据
context_flow_data = [ { 'url_date': item_data['date_field'].strftime("%Y-%m-%d"), 'date': item_data['date_field'], 'USD': item_data['USD'], 'EUR': item_data['EUR'], 'GBR': item_data['GBR'], } for item_data in cash_flow_data ]

然后将此数据提供给您的上下文和模板使用

<a href="{%  url 'account:detail_of_cash_flow' item.url_date %}">link</a>

第二种变体:您可以添加行

urlpatterns = [
    ...
    path('detail-of-cash-flow/', views.detail_of_cash_flow, name = "detail_of_cash_flow")
    ...
]

然后在模板中使用

<a href="{%  url 'account:detail_of_cash_flow' %}{{item.date_field|date:'Y-m-d'}}/">link</a>

暂无
暂无

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

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