2017-09-27 138 views
0

我想創建一個整數字段連接下拉框來收集用戶的時間段。從那裏我想以某種可讀格式存儲在表格中,例如12W,因爲我可以拆分對象並在今天的日期添加12周,並填寫截止日期字段。使用下拉框創建一個整數字段。 Django自定義小部件?

例如

[12][Days] 
    [weeks] 
    [Months] 

這將是一個客戶窗口小部件?還是有更好的方法來完成它?

回答

1

如果你只想要一個表單,你可以使用兩個表單字段,這兩個表單字段已經存在於Django中,以及它們的默認小部件。

IntegerField (forms) + ChoiceField (forms)choices[[0, "Days"],[1, "Weeks"],[2, "Months"],]

所以它看起來像:

class MyForm(forms.Form): 
    amount = forms.IntegerField(label='Your name') 
    units = forms.ChoiceField(choices=[[0, "Days"],[1, "Weeks"],[2, "Months"],]) 

如果你想有一個模型,分別存儲這兩個值,你可以使用(IntegerField (models)和一些領域您的偏好與choices)。然後使用ModelForm,因此您不需要再定義表單上的任何字段。

如果你想要比2個單獨的值更加機械的格式...檢查你的數據庫是否可以存儲間隔並考慮使用DurationField。但是,您將失去使用2個小部件自動創建整齊表單的可能性。

+0

嘿,謝謝你回覆我做了一個多值字段出來的interger字段和char字段的選擇設置:)再次感謝。 –

+0

@AllDay您使用了不同的方法來解決它。請考慮提供[你自己的問題的答案](https://stackoverflow.com/help/self-answer)並接受你自己的答案:) – Art

+0

它不是100%,我似乎無法讓小部件呈現在表格上,如果您想要查看,我已經設置了代碼共享。它看起來應該對我工作,但即時通訊仍然得到一個基本的文字輸入。 https://codeshare.io/2KoL6P - 代碼在這個頁面 –

相關問題