0

2 つのフィールドに値を保存しようとしていますが、それらを保存するときに値を に変更するnoneと、db にも表示されますnull

form.cleaned_data()かっこを角かっこに変更して、フォームの 2 つの値がデータベースに取り込まれるかどうかを確認しようとしましたが、との違いがよくわかりませんがform.cleaned_data[]、角かっこを使用することで、エラー。

ビュー.py

def solit(request):
    if request.method == 'POST' and request.is_ajax():
        form = addiForm(request.POST)
        if form.is_valid():
            peticion = form.save(commit=False)
            peticion.usuario = request.user
            peticion.save()
            peticion.usuario.d_pendientes = form.cleaned_data.get('d_pendientes')
            peticion.usuario.h_pendientes = form.cleaned_data.get('h_pendientes')
            peticion.usuario.save() 
            print (peticion.usuario.d_pendientes)
            print (peticion.usuario.h_pendientes)  
            return JsonResponse({'status': 'true', 'msg': 'Procesado Correctamente'})
        else:
            return JsonResponse({'status': 'false', 'msg': 'Los datos no son validos'})
    form = addiForm()
    return render(request, 'plantillas/adicionar.html', {'form':form})

私のモデル.py

class Usuarios(AbstractUser):
    numero_empleado = models.IntegerField(null= True, blank= True)
    area = models.CharField(max_length = 200, null= True, blank= True)
    d_pendientes = models.IntegerField(null= True, blank= False)
    h_pendientes = models.IntegerField(null= True, blank= False)
    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)


class Peticion(models.Model):
    solit_choices = (
    ('Adicionar','Adicionar'),
)
    solicitudes_id = models.AutoField(primary_key=True)
    usuario = models.ForeignKey(Usuarios, on_delete=models.CASCADE, null=True, blank=True)
    petit = models.CharField(max_length = 255, choices=solit_choices, null=True, blank=False)
    fec = models.DateTimeField(auto_now=True)
    razon = models.TextField(max_length=255, null=True, blank=True)
    periodo_init = models.DateField(max_length = 200, null=True, blank=True)
    periodo_fin = models.DateField(max_length = 200, null=True, blank=True)
    dias_adicion = models.IntegerField(null=True, blank=False)
    horas_adicion = models.FloatField(null=True, blank=False)

フォーム.py

class addiForm(forms.ModelForm):
    class Meta:
        """Formulario de solicitud"""

        model = Peticion

        fields = [

            'solicitudes_id',
            'petit',
            'razon',
            'periodo_init',
            'periodo_fin',
            'dias_adicion',
            'horas_adicion',

    ]

コンソールで、彼が POST リクエストを受信して​​いることがわかりますが、フォーム入力に入力した値ではなく、値 <code>none も出力されます。

4

1 に答える 1