簡體   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