wen*_*ert 2 django django-forms
假设我在forms.py中有这个表单:
CATEGORY_CHOICES= ((1,'Cat1'),
(2,'Cat2'),
(3,'Cat3'),
(4,'Cat4'),
)
class AddMessageForm(forms.Form):
title = forms.CharField(max_length=250)
groupname = forms.CharField(widget=forms.HiddenInput)
categories = forms.ChoiceField(choices = CATEGORY_CHOICES, required=True)
body = forms.CharField(widget=forms.Textarea)
Run Code Online (Sandbox Code Playgroud)
现在,CATEGORY_CHOICES是"硬编码的".这有效,但我需要在views.py中添加CATEGORY_CHOICES - 我需要做一些dbqueries来获取每个组下的"类别".
我该怎么做?
PS:我设法通过做这样的事情对我的views.py中的HiddenInput(groupname)做了同样的事情:
form = AddMessageForm(
initial={'groupname': groupname},
)
Run Code Online (Sandbox Code Playgroud)
我希望我明白我的问题.任何澄清等,请添加评论.
问候.w ^
在表单构造中设置选项
class AddMessageForm(forms.Form):
....
def __init__(self, *args, **kwargs):
self.fields['categories'].choices = \
[(x.id, x.title) for x in MyObject.objects.all()]
super(AddMessageForm, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
如果你真的想在views.py中这样做,那么方法是一样的.
myform.fields['categories'].choices = \
[(x.id, x.title) for x in Category.objects.all()]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |