0

次のようなテンプレートタグがあります。

     @register.filter
def get_runtime(date_start=None, date_end=None):
    fmt = '%Y-%m-%dT%H:%M:%S'
    if date_start and date_end is not None:
        date_start = datetime.strptime(date_start, fmt)
        date_end = datetime.strptime(date_end, fmt)
        return date_end - date_start
    else:
        return None

そして、次のようにそれを私のウェブサイトの1つに渡しています。

<b>Run Time (min): </b> {{ value.date_start|get_runtime:value.date_end }}<br>

しかし、「strptime() には正確に 2 つの引数が必要です (1 つ指定されています)」というエラーが表示されます。前もって感謝します

4

1 に答える 1

0

valueがモデルでdate_startdate_endが DateTimeFields の場合、モデルにメソッドを追加する方が簡単です

def runtime(self):
    if self.date_start and self.date_end:
        return self.date_end - self.date_start

テンプレートで使用します:

{{ value.runtime }}

値を変更して他の何かを計算しないため、ソリューションではフィルターの代わりにタグを使用することをお勧めします。関数はNoneデフォルトで戻ります。したがって、次のようになります。

@register.simple_tag
def get_runtime(date_start, date_end):
    if date_start and date_end:
        return date_end - date_start

テンプレート内:

{% get_runtime value.date_start value.date_end %}
于 2015-04-16T14:44:52.617 に答える