Django表单已发送,但未保存到数据库中



我正在做一个简单的用户业务应用程序,其中用户有一个或多个业务。问题是我创建的业务表单没有将其数据保存到数据库中。用户拥有所有权限并且处于活动状态,我可以毫无问题地保存创建用户表单中的数据。怎么了?视图.py:

class crear_negocio(LoginRequiredMixin, FormView):
template_name = "tienda/crear_negocio.html"
form_class= Negocio_Form
success_url = reverse_lazy('tienda_app:crear_negocio')
login_url = reverse_lazy('register_app:logIn')

表单.py:

class Negocio_Form(forms.ModelForm):
class Meta:
model = Negocio_Model
fields = ("Nombre_Negocio","Administrador","Descipcion_Negocio",'Correo_Negocio','Telefono_Negocio','Direccion_Negocio')

型号.py:

class Negocio_Model(models.Model):
Nombre_Negocio = models.CharField(max_length=25)
Administrador = models.ForeignKey(Usuario_Model, on_delete=models.CASCADE)
Descipcion_Negocio = models.TextField(null=True, blank=True)
Correo_Negocio = models.EmailField()
Telefono_Negocio = models.CharField(max_length=13)
Direccion_Negocio = models.CharField(max_length=25)
def __str__(self):
return self.Nombre_Negocio+' '+self.Correo_Negocio+' '+self.Telefono_Negocio+' '+self.Direccion_Negocio

数据库配置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bdtg1',
'USER':'juan',
'PASSWORD':'juanjo123',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}

FormView不会.save()表单,因此它确实不会在数据库中创建记录。默认情况下,如果表单成功,它会重定向到成功URL,仅此而已。例如,FormView的典型用例是发送电子邮件,而不是将其保存到数据库中。

您可以覆盖form_valid(…)方法[Django-doc]来保存表单,但最好使用CreateView[Django/doc]:

from django.views.generic.edit importCreateView
class crear_negocio(LoginRequiredMixin,CreateView):
template_name = 'tienda/crear_negocio.html'
form_class= Negocio_Form
success_url = reverse_lazy('tienda_app:crear_negocio')
login_url = reverse_lazy('register_app:logIn')

最新更新