使用UpdateView的自定义表单字段渲染不保存数据

时间:2019-06-09 19:30:27

标签: django python-3.x django-forms django-templates django-views

我正在尝试使用自定义HTML来呈现表单字段元素。但是,现在不保存数据。如果使用默认的form.as_p方法,数据将被保存。

相关模板:

<!--DOES NOT SAVE DATA-->
<form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.description }}
    <input type="submit" value="Update"/>
</form>
<!--SAVES DATA-->
<form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Update"/>
</form>

相关的UpdateView:

class ProfileEditView(UserPassesTestMixin, UpdateView):
    model = Profile
    form_class = ProfileCreateForm
    template_name = 'update_profile_backup.html'

    def get_success_url(self):
        return reverse('profile', kwargs={'pk': self.object.pk})

    def test_func(self):
        obj = self.get_object()
        print(obj.user == self.request.user)
        return obj.user == self.request.user

相关ModelForm:

class ProfileCreateForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = 'platform', 'content_niche', 'youtube_channel_id', 'description','profile_img', 'v_id_0', 'v_id_0_title', 'v_id_0_desc', \
                 'v_id_1', 'v_id_1_title', 'v_id_1_desc', 'v_id_2', 'v_id_2_title', 'v_id_2_desc'

是因为自定义渲染方法未验证表单数据吗?如果是这样,我该如何使用updateview?

0 个答案:

没有答案