Ich habe dieses Problem beim Erstellen eines Formulars mit Django konfrontiert.Wie behält man den Wert einer globalen Variable nach der Initialisierung im Konstruktor in Python?
class DetailForm(forms.Form):
row_id = 2
def __init__(self, *args, **kwargs):
global row_id
row_id = kwargs.pop('r_id')
super(DetailForm, self).__init__(*args, **kwargs)
row=Prewash.objects.get(id=row_id)
id = forms.CharField(label='ID',initial=row_id, widget=forms.TextInput(attrs={'readonly':'readonly'}))
Hier im init() die globale Variable row_id aktualisiert wird. Aber es wird nicht in der letzten Zeile angezeigt, wenn ich versuche, den Wert aus der Datenbank abzurufen.
Ich brauche einen Weg, um den Wert der Variablen zu behalten, die ich versuche, innerhalb des Konstruktors zu setzen (ohne Instanz oder Methoden zu verwenden).
was willst du genau hier tun? warum nicht einfach den Wert 'self.row_id' zuweisen, anstatt globale Variablen zu deklarieren? – v1k45
Ich habe die Frage bearbeitet, um Ihre Antwort zu beantworten. Ich kann die Selbstinstanz nicht erstellen, da ich außerhalb des Konstruktors oder der Funktion die Selbstinstanz nicht verwenden kann. Hier versuche ich eine dynamische Form zu erstellen. –