我正在Django中开发一个应用程序,当表单提交时,我遇到了这个错误:
我会把我的代码分享给你
这是我的模型:
class Oferta(models.Model):
titulo = models.CharField(verbose_name='Título', max_length=100, null=False, blank=False)
descripcion = models.TextField(verbose_name='Descripción', null=True, blank=True)
cantidad = models.PositiveSmallIntegerField(verbose_name='Cantidad', null=False, blank=False, default=1)
valor = models.DecimalField(verbose_name='Valor', max_digits=3, decimal_places=2, null=False, blank=False)
material = models.CharField(verbose_name='Material', max_length=20, null=False, blank=False, choices=MATERIAL_CHOICES)
imagenes = models.ManyToManyField(ImagenesOferta, verbose_name='Imagenes de la Oferta', blank=True)
usuario = models.ForeignKey(Usuario, verbose_name='Usuario', null=False, blank=False, on_delete=models.CASCADE)
is_active = models.BooleanField(verbose_name='Activo/Inactivo', default=True)
vendido = models.BooleanField(verbose_name='Vendido', default=False)
fecha_creacion = models.DateTimeField(verbose_name='Fecha de Creación', auto_now_add=True)
def __str__(self):
return self.titulo
class Meta:
verbose_name = 'Oferta'
verbose_name_plural = 'Ofertas',
ordering = ['-fecha_creacion']
这是我的观点:
login_required(login_url='login')
def publish_offer(request):
if request.method == 'POST':
titulo = request.POST['titulo']
descripcion = request.POST['descripcion']
cantidad = request.POST['cantKilos']
valor = request.POST['valor']
material = request.POST['material']
imagenes = request.FILES['imagenes']
usuario = request.user
oferta = Oferta(titulo=titulo, descripcion=descripcion, cantidad=cantidad, valor=valor, material=material, usuario=usuario)
oferta.save()
for imagen in imagenes:
img = ImagenesOferta.objects.create(imagen=imagen)
oferta.imagenes.add(img)
这是我身体的一部分我认为这可能是个问题
<div class="col-xl-4">
<div class="form-group">
<label for="valor" class="form-label">Agregar valor</label>
<input type="number" class="form-control form-control-user"
id="valor" name="valor" placeholder="0.00$">
</div>
</div>
通过审美和造型问题,我决定使用一个正常的形式
1条答案
按热度按时间nnvyjq4y1#
我强烈建议使用
ModelForm
,因为这将执行必要的数据验证和清理。在HTML表单中,您只需要将
name="cantKilos"
重命名为name="cantidad"
,但无论如何没有太多理由使用不同的名称。在视图中,我们可以简单地使用表单,如果你不想,你 * 不 * 必须使用模板中的表单: