Django устанавливает значение поля ForeignKey в ModelForm при отправке заявки
У меня есть RequisitionModel, который берет site из моей User модели в качестве ForeignKey. Как мне заставить RequisitionModelForm вытащить site текущего пользователя и передать его в форму?
* Я хочу, чтобы HTML-шаблон не отображал поле site, а устанавливал его в "фон" при отправке формы.
forms.py
class RequisitionModelForm(forms.ModelForm):
class Meta:
model = MaterialRequisition
fields = (
'reqDescription',
'reqDateNeeded',
'reqItems'
)
widgets = {
'reqDateNeeded': forms.DateInput(attrs={'type': 'date'}),
}
def __init__(self, *args, **kwargs):
super(RequisitionModelForm, self).__init__(*args, **kwargs)
queryset=Item.objects.all(),
widget=forms.CheckboxSelectMultiple,
)
models.py
class MaterialRequisition(models.Model):
req = models.AutoField(primary_key=True) #change to UUIDField if needed
site = models.ForeignKey("project_site.Site", related_name='destinationSite', on_delete=models.CASCADE)
reqDescription = models.CharField(max_length=1000, blank=True)
reqDateSubmitted = models.DateTimeField(auto_now=True)
reqDateNeeded = models.DateField(auto_now=False)
reqItems = models.ManyToManyField(
Item,
through="MaterialRequisitionItems",
through_fields=('req', 'item'),
related_name="mat_req_items"
)
views.py
class RequisitionAddView(LoginRequiredMixin, generic.CreateView):
template_name = "requisition/requisition_add.html"
form_class = RequisitionModelForm
model = MaterialRequisition
def get_success_url(self):
return reverse("requisition:list-requisition")
def get_queryset(self):
user = self.request.user
return MaterialRequisition.objects.all()