我的模特
MacroPianoDeiConti类(models.Model):
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):
Meta类:
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
编辑:
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)
有效