我有2个类,并且我需要根据第一个类中字段的值来验证第二个类中的字段,因为我的模板有2种形式。见下面。在第二种形式中,我需要知道modelodocumento.id == 1(从第一种形式开始)。在这种情况下,将需要字段nom_documentoservico。
第一种形式:
class servicoForm(forms.ModelForm):
modelodocumento = forms.ModelChoiceField(widget=forms.RadioSelect(), queryset=modelodocumento.objects.all(), required=True, empty_label=None,
error_messages={'required': 'REQUIRED'} )
class Meta:
model = servico
fields = (
'modelodocumento',
'desc_detalhamento'
)
def __init__(self, *arg, **kwarg):
super(servicoForm, self).__init__(*arg, **kwarg)
self.empty_permitted = False
def clean_desc_detalhamento(self):
modelo = self.cleaned_data['modelodocumento']
detalhe = self.cleaned_data['desc_detalhamento']
# Seleciona a instância do modelo escolhido
instance_modelo = modelodocumento.objects.get(desc_modelodocumento=modelo)
# Se o modelo escolhido for MODELO CARTÓRIO, o usuário deverá entrar com as devidas informações no campo DETALHAMENTO
if instance_modelo.id==2 and (detalhe==None or detalhe==''):
raise forms.ValidationError('Incluir as informações necessárias.')
return detalhe
第二种形式:
class documentomodeloForm(forms.ModelForm):
class Meta:
model = documentoservico
fields = (
'nom_documentoservico',
)
def __init__(self, *arg, **kwarg):
super(documentomodeloForm, self).__init__(*arg, **kwarg)
self.empty_permitted = False
def clean_nom_documentoservico(self):
documento = self.cleaned_data['nom_documentoservico']
# if modelodocumento.id == 1 (FROM servicoForm)
# raise forms.ValidationError('field is required !')
return documento