/ / Come creare un modulo django con una lista di selezione inizializzata da una query dinamica? - Django, forme, forme django

Come creare un modulo django con una lista di selezione inizializzata da una query dinamica? - Django, forme, forme django

Sto cercando di creare un modulo in cui un elenco di selezione può essere inizializzato da un parametro tuple che passo alla creazione dell'oggetto modulo.

Ho provato a fare quanto segue, per cui ha funzionatoCREARE il modulo. Ma quando provo a inviare il modulo, ottengo un errore is_valid () = falso. Nell'esempio seguente la variabile myrooms è i dati che mi piacerebbe caricare dinamicamente dopo l'inizializzazione del modulo.

class SessionInfoForm(forms.ModelForm):

def __init__(self, myrooms = None, *args, **kwargs):
super(SessionInfoForm, self).__init__(*args, **kwargs)
if myrooms != None:
self.fields["room"].choices = myrooms

class Meta:
model = SessionInfo
fields = ["title", "room", "viewer_limit", "starttime", "endtime", "billing_type", "billing_value"]

risposte:

1 per risposta № 1

Probabilmente ti stai dimenticando di passare la stessa lista myrooms quando si convalidano i risultati.

Devi passarlo entrambi per il rendering e la convalida.


0 per risposta № 2

basta cambiare self.fields["room"].choices = myrooms a self.fields["room"].widget.choices = myrooms , l'ho già modificato nella tua domanda