0
여러 개의 확인란이있는 폼을 만들려고합니다. 그러나 양식로드 괜찮지 만 데이터가 저장되지 않습니다. 나는 형식으로 아니라 관리자에 데이터를 입력하여 데이터를 저장할 수 있습니다. 양식을 is_valid()
없이보기에 저장하면 양식에 입력 한 값이 아닌 기본값으로 저장됩니다. 또한 확인란을 선택하면 오류가 발생합니다. '항생제'는 기본 키에 대해 유효한 값이 아닙니다. 예를 들어 선택하면 항생제. 나는 장고를 잘못 했으니 까.Django 폼 렌더링 및 저장
models.py :
class Taken24h(models.Model):
CHOICES_EATEN = (
('antibiotics', 'Antibiotics'),
('steroids', 'Steroids'),
...
)
val = models.CharField(max_length=40,choices=CHOICES_EATEN,blank=True,null=True)
class BloodDonation(models.Model):
name = models.CharField(max_length=100,blank=False,null=True)
date_of_birth = models.DateField(null=True,blank=False)
nationality = models.CharField(max_length=50,blank=False,null=True)
...
taken_following_in_last_24_hrs = models.ManyToManyField(Taken24h,blank=True)
forms.py :
class BloodDonationForm(forms.ModelForm):
name = forms.CharField(widget=forms.TextInput,required=True)
date_of_birth = forms.CharField(widget=forms.DateInput,required=True)
nationality = forms.CharField()
...
taken_following_in_last_24_hrs = forms.ModelMultipleChoiceField(queryset=Taken24h.objects.all(),
widget=forms.CheckboxSelectMultiple,required=False)
)
class Meta:
model = BloodDonation
fields = '__all__'
def __init__(self,*args,**kwargs):
super(BloodDonationForm, self).__init__(*args, **kwargs)
self.fields['taken_following_in_last_24_hrs'].choices = Taken24h.CHOICES_EATEN
views.py :
def forms(request):
form = BloodDonationForm(request.POST or None)
if form.is_valid():
form.save(commit=True)
else:
print("Invalid")
data = {
'form':form,
}
return render(request,"forms.html",data)