Vorrei fare un set di query in cui l'utente corrente viene utilizzata come filtro in una ModelForm:Come utilizzare la richiesta in un ModelForm in Django
class BookSubmitForm(ModelForm):
book = forms.ModelChoiceField(queryset=Book.objects.filter(owner=request.user),)
...
Vuol Django passare la richiesta al modulo? È una buona pratica? Come posso usare la richiesta? (Naturalmente la richiesta di nome non è definito)
Edit:
Ho provato un'altra soluzione è chiamare la forma nella visualizzazione passando richiesta:
form = BookSubmitForm(request)
e poi nella forma Io uso questo:
class BookSubmitForm(ModelForm):
def __init__(self, request, *args, **kwargs):
super(BookSubmitForm, self).__init__(*args, **kwargs)
self.fields["library"].queryset = Library.objects.filter(owner=request.user)
Funziona e il codice è nel modulo. Ora non sono sicuro che sia la soluzione migliore, potrebbe essere migliorata?
Hai ragione, funziona. Vorrei sapere se è possibile inserire il codice nel modulo, solo per scopi organizzativi e pulizia globale. – Bastian
Sì, è possibile ed è spesso una buona idea per mantenere pulito il codice di visualizzazione. Ho aggiornato con un esempio. – AdamKG