Моя модель
класс MacroPianoDeiConti (модели. Модель):
codice = models.CharField(max_length=6)
descrizione = models.CharField(max_length=400)
класс PianoDeiConti (models.Model):
macro = models.ForeignKey(MacroPianoDeiConti, on_delete=models.SET_NULL, null=True, blank=True,
default=None, related_name='MacroP')
codice = models.CharField(max_length=6)
descrizione = models.CharField(max_length=400)
tipo = models.ForeignKey(ContoTipo, on_delete=models.SET_NULL, null=True, blank=True,
default=None, related_name='ContTi')
def __str__(self):
return str(self.codice) + ' ' + self.descrizione
класс CostoDocumento (models.Model):
dataregistrazione = models.DateField(default=date.today())
numerodocumento = models.CharField(max_length=6)
datadocumento = models.DateField(default=date.today())
fornitore = models.ForeignKey(Fornitori, on_delete=models.SET_NULL, null=True, blank=False,
default=None, related_name='Forn')
importo = models.FloatField(null=True, blank=False, default='0')
conto = models.ForeignKey(PianoDeiConti, on_delete=models.SET_NULL, null=True, blank=False,
default=None, related_name='Cont')
inizio = models.DateField(null = True, blank = True, default = None)
fine = models.DateField(null=True, blank=True, default=None)
def __str__(self):
return self.dataregistrazione + ' ' + self.fornitore
'' '
А это моя форма:
''»
Класс CostoDocumentoForm (forms.ModelForm):
Мета класса:
model = CostoDocumento
fields = '__all__'
labels = {
'dataregistrazione': _('Data Registrazione'), 'numerodocumento': _('Numero Documento'),
'datadocumento': _('Data Documento'), 'fornitore': _('Fornitore'), 'importo': _('Importo'),
'conto': _('Conto'), 'inizio': _('Inizio Periodo'), 'fine': _('Fine Periodo'),
}
def __init__(self, *args, **kwargs):
super(CostoDocumentoForm, self).__init__(*args, **kwargs)
self.fields['conto__macro_id'].queryset = self.fields['conto__macro_id'].queryset.filter(conto__macro=1)
'' '
Я хочу отфильтровать каскадные поля в шаблоне по conto__macro = 1
TY
EDIT:
forms.py
def __init__(self, *args, **kwargs):
super (CostoDocumentoForm,self ).__init__(*args,**kwargs) # populates the post
self.fields['conto'].queryset = PianoDeiConti.objects.exclude(macro_id=8).exclude(tipo_id=3)
это работает