나는 쉬운 질문 일 수 있으므로 장고를 처음 사용합니다. ForeignKey가 다른 곳에 두 개의 modelForm을 가지고 있습니다. 나의 주요 목표는 질병 (FK)에 대한 링크가있는 지표를 저장하여 특정 질병에 대해 여러 지표를 가질 수 있도록하는 것입니다.Django 'ManagementForm 데이터가 없거나 외부 키가있는 modelForm을 저장할 때'변조되었습니다.
아래 코드를 사용하면 'ManagementForm 데이터가 없거나 변조되었습니다'라는 메시지가 나타나면 오류가 발생합니다. 또한, views.py의 코드는 return HttpResponseRedirect가있는 세 번째 'if'문에서 유효성 검사를하지 않는 것처럼 보입니다. 그러나 데이터베이스를 검사 할 때 양식의 값이 기록됩니다. 오류가 제기 된 이유에 대한 아이디어가 있습니까? 그것을 고치는 방법?
내 코드는 다음과 같습니다 :
models.py
#Table for Disease
class Disease(models.Model):
disease = models.CharField(max_length=300)
#Tables for Indicators
class Indicator(models.Model):
relevantdisease = models.ForeignKey(Disease)
indicator = models.CharField(max_length=300)
forms.py
class DiseaseForm(forms.ModelForm):
class Meta:
model = Disease
class IndicatorForm(forms.ModelForm):
class Meta:
model = Indicator
DiseaseFormSet = inlineformset_factory(Disease,
Indicator,
can_delete=False,
form=DiseaseForm)
views.py
def drui(request):
if request.method == "POST":
indicatorForm = IndicatorForm(request.POST)
if indicatorForm.is_valid():
new_indicator = indicatorForm.save()
diseaseInlineFormSet = DiseaseFormSet(request.POST, request.FILES, instance=new_indicator)
if diseaseInlineFormSet.is_valid():
diseaseInlineFormset.save()
return HttpResponseRedirect('some_url.html')
else:
indicatorForm = IndicatorForm()
diseaseInlineFormSet = DiseaseFormSet()
return render_to_response("drui.html", {'indicatorForm': indicatorForm, 'diseaseInlineFormSet': diseaseInlineFormSet},context_instance=RequestContext(request))
template.html
는 https://docs.djangoproject.com/en/stable/topics/forms/formsets/#understanding-the-managementform를 참조하십시오. –