我尝试使用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
我的表单:
class ProvForm(forms.ModelForm):
def __init__(self,*args,**kwargs):
super(ProvForm,self).__init__(*args,**kwargs)
self.helper = FormHelper(self)
self.helper.layout.append(Submit('save','Grabar'))
class Meta:
model = Proveedor
我的观点:
@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
空。我不确定是否需要传递表单定义或视图定义中的值。我想知道是否可以在不使用数据库触发器的情况下将此表单的某些字段保存在另一个模型上。
有什么建议吗?