如何使用图像将表单保存到数据库?如果我对imagen = modelImageField
行进行评论,那么一切正常,所以我认为model.py
中存在问题。表单的所有其他部分保存到数据库。如果我注释掉该行,则不会显示错误,但表单不会保存到数据库中。任何人都可以帮我这个吗?
这是我的观点
Views.py
class donacion_Form(CreateView):
template_name='App/donacion.html'
model=donacion
fields="__all__"
success_url=reverse_lazy('mi_donacion')
这是表格
Forms.py
class donacion_Form(forms.ModelForm):
class Meta:
model=donacion
fields="__all__"
这是模型
Model.py
class donacion(models.Model):
nombre=models.CharField(max_length=50)
estados = (
('EC', 'Excelente condicion'),
('BP', 'Buena presentacin'),
('PD', 'Presenta desgaste'),
('MD', 'Muy desgastada'),
)
prendas = (
('TP', 'Tops'),
('BT', 'Bottoms'),
('CZ', 'Calzado'),
('AS', 'Accesorios'),
('CM', 'Chamarras'),
)
generos = (
('MJR', 'Mujer'),
('HMB', 'Hombre'),
('UXA', 'Unisex adulto'),
('CHO', 'Chicos'),
('CHA', 'Chicas'),
('UXI', 'Unisex infantil'),
('BEB', 'bebes'),
)
tallas = (
('EC', 'XS'),
('CH', 'S'),
('MD', 'M'),
('GD', 'L'),
('EG', 'XL'),
('SG', 'XXL'),
)
autor=models.CharField(max_length=25)
estado = models.CharField(
max_length=2,
choices=estados,
default='EC',
)
genero = models.CharField(
max_length=3,
choices=generos,
default='UXA',
)
prenda = models.CharField(
max_length=2,
choices=prendas,
default='TP',
)
talla = models.CharField(
max_length=2,
choices=tallas,
default='CH',
)
direccion = models.CharField(max_length=500)
/*if i comment this line imagen work fine*/
imagen = models.ImageField(null = False,blank=False)
descrip = models.TextField()
def __str__(self):
return '{}'.format(self.autor)
答案 0 :(得分:-1)
imagen = models.ImageField(null = False,blank=False, upload_to='imagen/')
使用upload_to
指定上传目录,更多信息here。
class DonacionCreateView(CreateView):
template_name='App/donacion.html'
form_class = DonacionForm
success_url=reverse_lazy('mi_donacion')
class DonacionForm(forms.ModelForm):
class Meta:
model=donacion
fields="__all__"
<form class="form-horizontal" enctype="multipart/form-data"
action="{% url 'donacion_create' %}"
method="post">
{% csrf_token %}
{{ form.media }}
{{ form.errors}}
{{form}}
<div class="form-group">
<input class="btn" type="submit" value="Create"/>
</div>
</form>
将form.errors添加到html,看看是否发生任何错误。 如果还是错的,请更新现象和错误信息。