2013-10-24 33 views
1

我有一個模型:在一個友好的短日期時間格式如何格式化LinkColumn作爲DateTimeColumn

start_time = models.DateTimeField() 
end_time = models.DateTimeField() 

我使用的Django tables2,他們都格式。

現在我改變START_TIME在表類是使用鏈接:

start_time = tables.LinkColumn('desturl', args[A('pk')]) 

而且它現在格式化爲長不友好的日期與時區的數據。

有無論如何都有格式化LinkColumn和DateTimeColumn?我無法在文檔中找到任何內容。

回答

0

如果要格式化的數據作爲URL,保持列作爲一個日期字段,並使用render_foo method呈現日期作爲一個URL,例如:

render_start_time(self,value): 
    mark_safe('<a href="some_url">%s</a>' % value) 

希望這有助於

David

0

由於這是您可能希望跨表和字段重用的內容,因此自定義列是一個不錯的主意。例如,子類DateTimeColumn並通過調用BaselinkColumn.render_link添加鏈接:

from django_tables2.columns.linkcolumn import BaseLinkColumn 

class LinkedDateTimeColumn(tables.DateTimeColumn): 
    def __init__(self, viewname, *args, **kwargs): 
     self.viewname = viewname 
     super(LinkedDateTimeColumn, self).__init__(*args, **kwargs) 

    def render(self, *args, **kwargs): 
     ts = super(LinkedDateTimeColumn, self).render(*args, **kwargs) 
     view = reverse(self.viewname, args=[kwargs["record"].slug]) 
     return BaseLinkColumn().render_link(view, ts) 

# in your tables 
timestamp = LinkedDateTimeColumn('your_view_name', "d.m.Y H:i") 

我硬編碼字段用於查找網址爲「彈頭」,因爲我的所有車型使用它,但你可以很容易地將其更改爲「pk」或將其添加爲參數。同樣,您可以傳遞給LinkColumn的所有可選參數在此處不存在 - 請重新添加所需的參數。

相關問題