2012-07-04 88 views
0

我有一張表格,我比較了選定數據的兩個版本。 這個數據實際上已經不止一個版本的存儲,所以在我的表我有列:自定義django表的列爲下拉列表

class ver_compare(tables.Table): 
     new_db = tables.CheckBoxColumn() 
     data = tables.Column() 
     current_rev = tables.Column() 
     next_rev = tables.Column()* 

現在最後一場我想爲每個單元有一個下拉的版本列表從有得選擇類似於choicefield。 是否有任何方法去?

在此先感謝!

+0

你能用手寫一些html嗎?在django模板中,循環「版本」並生成html自己可以很容易地實現你想要的。你知道如何使用jQuery和其他js工具來操作dom嗎? – pinkdawn

+0

其實我並沒有意識到使用Jquery和其他js工具 – Karan

+0

這很可惜,@Karan你應該花點時間學習它。 python/django不是解決這個問題的最好方法,html + js是。 – pinkdawn

回答

2

您可以使用TemplateColumn。在這裏,您可以看到我能想到的最簡單的模型。當然,您需要將模板更改爲更有用的模板。

countries = [ 
    {'name': 'Australia', 'population': 21, 'tz': 'UTC +10', 'visits': 1}, 
    {'name': 'Germany', 'population': 81, 'tz': 'UTC +1', 'visits': 2}, 
    {'name': 'Mexico', 'population': 107, 'tz': 'UTC -6', 'visits': 0}, 
] 

template = """ 
<select> 
<option{% if record.visits = 0%} selected {% endif %}>0 
<option{% if record.visits = 1%} selected {% endif %}>1 
<option{% if record.visits = 2%} selected {% endif %}>2 
</select> 
""" 

class CountryTable(tables.Table): 
    name = tables.Column() 
    population = tables.Column() 
    tz = tables.Column(verbose_name='time zone') 
    visits = tables.TemplateColumn(template) 
+0

非常感謝,它的工作原理非常好...需要更改模板併合並版本的字典 – Karan

+0

我正在考慮在課後渲染模板,但它未顯示在網頁中 – Karan

+0

通過渲染一個類是什麼意思?只有模板可以呈現。 – KCiebiera