如何将字符串pk保存到int pk中?

时间:2017-01-16 21:12:22

标签: django django-models django-forms django-templates django-views

当我想保存配置文件ID表单有错误时,我有一个提交表单的问题,我不明白为什么因为在控制台中一切正常但是form_valis是假的,所以想想因为ModelChoiseField发送一个pk以sting格式,如何将字符串pk转换为int pk?

我的表格

类UsuarioForm(forms.ModelForm):

id_perfil = forms.ModelChoiceField(queryset=Perfil.objects.filter(status='1'), label="Perfil" ,empty_label="Seleciona perfil", widget=forms.Select(attrs={'class':'form-control'}))

我的模特

class Usuario(models.Model):
    id_usuario = models.AutoField(primary_key=True)
    nombre = models.CharField(max_length=255)
    id_perfil = models.IntegerField()
    status = models.CharField(max_length=50)

class Perfil(models.Model):
    id_perfil = models.AutoField(primary_key=True)
    nombre = models.CharField(max_length=255)
    status = models.CharField(max_length=50)

保存方法

def save_usuario_form(request, form, template_name):
data = dict()
if request.method == 'POST':
    if form.is_valid():
        usuario = form.save(commit=False)
        if usuario.status == '':
            usuario.status = '1'
            usuario.id_usuario_alt = '1'
        elif usuario.status == '1':
            usuario.status = '2'
        form.save()
        data['form_is_valid']= True
        usuarios = Usuario.objects.filter(status='1').order_by('id_usuario')[:5]
        data['html_usuario_list'] = render_to_string('back/Modulo_usuarios/usuarios_list.html',{
            'usuarios':usuarios
        })
    else:
        data['form_is_valid']= False
context = {'form':form}
data['html_form'] = render_to_string(template_name, context, request=request)
return JsonResponse(data)

The error

All fields are fill and post method is OK

0 个答案:

没有答案