Почему значение BooleanField не сохраняется в базу? django forms CheckboxInput
почему не сохраняется значение card_pay
в модель?
forms
class card_pay_SpecialCheckboxInput(forms.CheckboxInput):
template_name = "include/_forms_textinput_card.html"
class RelatedAddForm(forms.ModelForm):
card_pay = forms.BooleanField(label=False, required=False, widget=card_pay_SpecialCheckboxInput(attrs={}))
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(RelatedAddForm, self).__init__(*args, **kwargs)
self.fields['money'].initial = ''
class Meta:
model = Money
fields = ['money', 'card_pay']
widgets = {
'money': forms.TextInput(attrs={'class': 'form-control','placeholder': 'Стоимость'}),
}
models
class Money(models.Model):
money = models.DecimalField(max_digits=19, default=0, decimal_places=2)
card_pay = models.BooleanField(default=False)
Пример рабочего кода, думаю он вам должен помочь разобраться в проблеме: models
from django.db import models
class Money(models.Model):
money = models.DecimalField(max_digits=19, default=0, decimal_places=2)
card_pay = models.BooleanField(default=False)
forms
from django import forms
from .models import Money
class MoneyForm(forms.ModelForm):
class Meta:
model = Money
fields = ['money', 'card_pay']
views
from django.shortcuts import render, redirect
from .forms import MoneyForm
def money_view(request):
if request.method == 'POST':
form = MoneyForm(request.POST)
if form.is_valid():
form.save()
return redirect('success_url')
else:
form = MoneyForm()
return render(request, 'money_form.html', {'form': form})
money_form.html
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>