在页面加载时设置表单值

时间:2018-04-12 19:19:15

标签: django django-forms

如何根据pk从DB填充表单?因此,如果网址为http://demo.com/edit-voucher/123456,如何将凭证条目123456的值输入表单?

表单显示,但不知道如何填充它...

urls.py:

url(r'^edit-voucher/(?P<pk>[\d]+)', reports.EditVoucherView.as_view()),

forms.py:

class EditVoucherForm(forms.ModelForm):
    class Meta:
        model = Vouchers
        fields = ['event_name', 'valid_start', 'valid_end', 'duration']

views.py:

class EditVoucherView(LoginRequiredMixin, GroupRequiredMixin, FormView):
    template_name = 'edit_voucher.html'
    group_required = u'voucherEdit'
    form_class = EditVoucherForm

2 个答案:

答案 0 :(得分:2)

您可以使用UpdateView代替FormView

class EditVoucherView(LoginRequiredMixin, GroupRequiredMixin, UpdateView):
    template_name = 'edit_voucher.html'
    group_required = u'voucherEdit'
    form_class = EditVoucherForm
    model = Vouchers

答案 1 :(得分:0)

您似乎可以访问模板中表单的pk,因为它位于网址中。如果使用pycharm,请尝试使用调试器查看模板中是否有pk值。