错误:int()参数必须是字符串或数字,而不是保存新记录Djang的“NoneType”

2024-06-28 20:18:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试使用model.Autofield在数据库中保存新记录时遇到一些问题

models.py

class Proveedor(models.Model):
    id_proveedor = models.AutoField(primary_key=True, db_column='id_proveedor')
    nombre = models.CharField(max_length=50)
    tipo = models.CharField(max_length=50)
    asignado_a = models.CharField(max_length=15,verbose_name='Asignado a')
    moneda = models.CharField(max_length=1, blank=True)
    class Meta:
        managed = False
        db_table = 'mpc_proveedores'

    def __unicode__(self):
        return self.nombre

我的表格

^{pr2}$

我的观点

@login_required(login_url='/login/')
def proveedores(request):
    form = ProvForm(request.POST or None)

    if form.is_valid():
       form.save()
       messages.success(request, 'Proveedor Grabado')
       return HttpResponseRedirect('/monitor/')

    return render_to_response("proveedor.html",
                               locals(),
                               context_instance=RequestContext(request))

当我试图保存新记录时,收到错误:

int() argument must be a string or a number, not 'NoneType'

显然,表单接收的id_proveedor为空。我不确定是否需要在窗体定义或视图定义中传递值。我想知道是否可以将这个表单的一些字段保存到另一个模型上,而不使用数据库触发器。在

有什么建议吗?在


Tags: formid数据库truereturnmodelsrequest记录