0

我正在使用 Django 1.5,我正在尝试创建一个列表并将一个表单(带有选择字段)与列表中的每个项目相关联,从哪里更改该对象的一些数据。

我遇到了以下问题:

问题 1:如何获取适当对象的 pk,以便在 db 中更新它?

问题2:当我发出post请求时,所有表单中的数据都在变化,每个表单都会有choicefield的变化数据

如果这不是实现所需行为的正确方法,请在我的街道上点亮!

发送!

下面是一些示例代码。

看法:

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 %}
4

1 回答 1

1

您应该使用表单集

于 2013-10-30T11:22:23.623 回答