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 № 1Probabilmente 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