Вот кусок HTML c формой:
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-row ">
<div class="col ">
{{form.nomerdoc}}
</div>
<td>
<div class="col ">
<span class="mt-1"> {{form.datadoc}}</span>
</div>
</td>
<td>
<div class="col ">
<span class="mt-1"> {{form.typedoc}}</span>
</div>
</td>
<td>
<div class="col ">
<span class="mt-1"> {{form.dealer}}</span>
</div>
</td>
а вот forms...
class DocForm(forms.ModelForm):
class Meta:
model=Doc
#fields='__all__'
fields=['nomerdoc','datadoc','dealer','typedoc']
widgets={
'nomerdoc':forms.TextInput(attrs={'class':'form-control'}),
'datadoc':MyDateInput(attrs={'class':'form-control '}),
'dealer':forms.Select(attrs={'class':'form-control'}),
'typedoc': forms.Select(attrs={'class': 'form-control'}),
}
Вот модель, для которой форма...
class Doc(models.Model):
nomerdoc=models.CharField(max_length=20,verbose_name="Номер документв")
datadoc=models.DateField(verbose_name='Дата документа')
updated_at = models.DateTimeField(auto_now=True, verbose_name='Создан')
created_at = models.DateTimeField(auto_now_add=True, verbose_name='Обновлен')
dealer=models.ForeignKey(Dealer,verbose_name='Поставщик',on_delete=models.PROTECT)
buytotal=models.DecimalField(max_digits=8,decimal_places=2,blank=True,null=True,default=0.00)
saletotal=models.DecimalField(max_digits=8,decimal_places=2,blank=True,null=True,default=0.00)
transaction=models.BooleanField(verbose_name='Проведен',default=False)
typedoc=models.ForeignKey(TypeDoc,verbose_name='Тип документа',on_delete=models.PROTECT)
А вот модель типа документа. Вот из неё хотелось отбирать данные для selecta. Например, при создании нового документа ограничить селект пунктами Поступление и Ввод начальных остатков и не показывать, допустим, тип документа Кассовый чек...
class TypeDoc(models.Model):
title=models.CharField(max_length=70,verbose_name='Тип документа')
def __str__(self):
return self.title