Django的。简单的FormView不保存 [英] Django. Simple FormView not saving

查看:71
本文介绍了Django的。简单的FormView不保存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是django通用FormView的新手。我遗漏了一些明显的东西,该表单可以正确呈现,但是它没有保存数据:

I'm kind of new to django generic FormView. I'm missing something obvious, the form renders correctly but it is not saving the data:

forms.py

from perfiles.models import Perfil

class FormEditarPerfil(forms.ModelForm):

    class Meta:
        model = Perfil
        fields = ('descripcion',)

<来自django.views.generic.edit的strong> views.py

from django.views.generic.edit import FormView
from forms import FormEditarPerfil

class EditarPerfil(FormView):
    template_name = "perfiles/editar_perfil.html"
    form_class = FormEditarPerfil

    def get_success_url(self):
        url = reverse_lazy('perfiles:propio', kwargs={'username': self.request.user.username})
        return url


推荐答案

您在正确的道路上!但是 FormView 不会保存您的模型,因为文档指示:

You're on the right path! But FormView doesn't save your model, as the documentation indicates:


显示表单的视图。错误时,重新显示带有
验证错误的表单;成功后,将重定向到新URL。

A view that displays a form. On error, redisplays the form with validation errors; on success, redirects to a new URL.

您正在寻找 UpdateView 。这样,您无需创建单独的表单,只需在视图中使用 fields 属性即可:

You are looking for UpdateView. This way you don't need to create a separate form, just use the fields attribute in your view:

from django.views.generic.edit import UpdateView
from perfiles.models import Perfil

class EditarPerfil(UpdateView):
    template_name = "perfiles/editar_perfil.html"
    model = Perfil
    fields = ['descripcion']

    def get_success_url(self):
        url = reverse_lazy('perfiles:propio', kwargs={'username': self.request.user.username})
        return url

这篇关于Django的。简单的FormView不保存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆