2017-09-27 141 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 - 代码在这个页面 –

相关问题