0
ModelForm을 인라인으로 전달하는 데 도움이 필요합니다.외래 키 관계를 사용하여 인라인 할 모델
사용 가능한 IP 주소를 테스트해야합니다. 표준 ModelAdmin과 작동하지만 인라인으로 들어가야합니다. 하지만 외래 키를 사용하여 목록을 가져 오는 방법을 잘 모르겠습니다. 사용 가능한 IP 주소는 DslamSet 모델에 들어가야하며 IP 주소는 저장 중에 IP_block 모델에서 계산됩니다.
forms.py
class IP_blockForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(IP_blockForm, self).__init__(*args, **kwargs)
if self.instance and self.instance.ip_range:
split_range = self.instance.ip_range.split(' ')
ip_list_choices = zip(split_range, split_range)
self.fields['ip_list'] = forms.ChoiceField(choices=ip_list_choices)
class Meta:
model = IP_block
내가이 일을 생각했지만, 작동하지 않습니다. "예외가 제공되지 않았습니다"라는 오류 메시지가 나타납니다.
class DslamSetForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(DslamSetForm, self).__init__(*args, **kwargs)
if self.instance and self.instance.ip_block.ip_range:
split_range = self.instance.ip_block.ip_range.split(' ')
ip_list_choices = zip(split_range, split_range)
self.fields['ip_list'] = forms.ChoiceField(choices=ip_list_choices)
class Meta:
model = DslamSet
나는 잘못하고 있지만 확실하지는 않습니다. 도움을 환영합니다.
"예외가 제공되지 않았습니다"에 대한 연구를하고 있었는데 form.is_valid()와 관련이 있습니다. 사용 가능한 IP 주소가 모델 선택 항목으로 저장되지 않았다고 생각합니다. 그것이 말하기 때문에, 존재하지 않습니다. – Infinixd