为什么我不能使用Django创建对象?

时间:2019-10-05 13:51:24

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

我正在使用每个表单的模型,但是我无法保存记录,并且jsconsole向我发送了http 200代码,服务器也向我发送了http / POST / http 1.1 200,但是在mysql db中却没有保存记录,怎么了?

这是我的功能

def permiso_create(request):
"""Gestion de solicitudes"""
    if request.method == 'POST' and request.is_ajax():
        form = Permiso_create(request.POST)
        if form.is_valid():
            Permiso = form.save(commit=False)
            Permiso.usuario = request.user
            Permiso.save()
            return JsonResponse({'status': 'true', 'msg': 'Procesado Correctamente'})#devolviendo json en js console
        else:
            return JsonResponse({'status': 'false', 'msg': 'Los datos no son validos'})#devolviendo json en js console
    form = Permiso_create()
    return render(request, 'plantillas/permiso.html', {'form':form})

这是我的模型。py

class Users(AbstractBaseUser, PermissionsMixin): #Estructura base de userDjango personalizado 
   usuario = models.CharField(max_length = 200, null=False, blank=False, unique=True)
   nombre = models.CharField(max_length = 200, null=True, blank=True)
   apellido = models.CharField(max_length = 200, null=True, blank=True)
   numero_empleado = models.IntegerField(null=True, blank=True)
   correo = models.EmailField(max_length = 50, null=True, blank=True)
   area = models.CharField(max_length = 200, null=True, blank=True)
   d_pendientes = models.IntegerField(null=True, blank=True)
   h_pendientes = models.FloatField( blank=True, null=True)
   f_init = models.DateField(max_length = 200, null=True, blank=True)
   init_vac = models.DateField(max_length = 200, null=True, blank=True)
   fin_vac = models.DateField(max_length = 200, null=True, blank=True)
   ul_vac_tomadas = models.IntegerField(null=True, blank=True)
   is_active = models.BooleanField(default=True, null=True, blank=True)
   is_staff = models.BooleanField(default=False, null=True, blank=True)

class Permiso(models.Model): #modelo para permisos( exclusivamente)
   permiso_choice = (
    ('Permiso', 'Permiso'),
    ('Vacaciones', 'Vacaciones')
)
   sts_choice = (
    ('estatus de espera', 'Por confirmar'),
    ('permiso rechazado', 'Rechazar'),
    ('aceptar permiso', 'Aceptado')
)

   id = models.AutoField(primary_key=True)
   disponer = models.CharField(max_length=255, choices=permiso_choice, null=True, blank=False)
   usuario = models.ForeignKey(Users, on_delete=models.CASCADE, null=False, blank=False)
   dia_creado = models.DateTimeField(auto_now_add=True, null=True)
   razon = models.TextField(max_length=255, null=True, blank=False)
   periodo_i = models.DateField(null=True, blank=False)
   periodo_f = models.DateField(null=True, blank=False)
   dias_disponer = models.IntegerField(null=True, blank=False)
   horas_disponer = models.FloatField(null=True, blank=False)
   status = models.CharField(max_length=255, default='Por confirmar', choices=sts_choice, null=True, blank=False)

这是我的forms.py

class Permiso_create(forms.ModelForm):

  class Meta:

    model = Permiso

    fields = [

        'disponer',
        'razon',
        'periodo_i',
        'periodo_f',
        'dias_disponer',
        'horas_disponer',
        'status',


    ]

感谢一切

0 个答案:

没有答案