我正在使用Django 1.5,我正在尝试创建一个列表并将一个表单(带有选择字段)与列表中的每个项目相关联,从哪里更改该对象的一些数据。
我遇到了以下问题:
问题1:如何获取适当对象的pk,以便在db中更新它?
问题2:当我发布帖子请求时,数据会以所有形式发生变化,每个表单都会有已更改的数据用于选择字段
如果这不是实现理想行为的正确方法,请将灯光点亮我的街道!
的Tx!
以下是一些示例代码。
查看:
class MyListView(ListView, FormMixin):
model = MyModel()
queryset = MyModel.objects.all()
form_class = MyForm
def get_context_data(self, **kwargs):
context = super(MyListView, self).get_context_data(**kwargs)
form_class = self.get_form_class()
context['form'] = self.get_form(form_class)
return context
def post(self, request, *args, **kwargs):
form_class = self.get_form_class()
form = self.get_form(form_class)
if form.is_valid():
update_obj = MyModel.objects.get(pk= PROBLEM1 )
...
update_obj.save()
else:
print form.errors
return self.get(request, *args, **kwargs)
形式:
class MyForm(forms.Form):
CHOICES=(
('one','one'),
('two','two')
)
nr = forms.ChoiceField(widget = forms.Select, choices = CHOICES)
模板:
{% for item in object_list %}
<tr>
<td>{{ item.title }}</td>
<td>{{ item.nr}}
<form action="" method="post">{% csrf_token %}
{{ form.as_p }} <input type="submit" value="Submit" />
</form>
</td>
</tr>
{% endfor %}