Wie kann man ein Django-Formular erstellen, um zu bestimmen, wo die Schlüssel die Feld-ID in der Vorlage und die Werte die Anfangswerte sind?

Ich habe ein riesiges Django-Formular und muss ein Diktat erstellen, in dem die Schlüssel die Feld-ID in der Vorlage und die Werte die Anfangswerte sind. Etwas wie das:

{'field1_id_in_template': value1, ...}

Weiß jemand wie das geht?

Ich kann das Präfix 'id_' für jeden Feldnamen im form.fields-Wörterbuch hinzufügen, aber ich kann ein Problem haben, wenn jemand die ID für widget.attrs ändert

Antworten:

Dies ist die CBV-Methode:

def post_ajax(self, request, *args, **kwargs):
    form = ChooseForm(request.POST, log=log)
    if form.is_valid():
        instance = form.save()
        inst_form = InstanceForm(instance=instance, account=request.user)
        fields = {}
        for name in inst_form.fields:
            if name in inst_form.initial:
                fields[inst_form.auto_id % name] = inst_form.initial[name]
        return HttpResponse(
            json.dumps({'status': 'OK','fields':fields},
            mimetype='appplication/json'
        )
    assert False

Und das ist ein Grund, warum ich das tue: Mit dieser Antwort kann ich so etwas auf Client schreiben. Jetzt muss ich nicht mehr alle Felder auf der Seite manuell initialisieren

function mergeFields(data) { 
    for(var id in data) { 
        $("#"+id).val(data[id]).change(); 
    } 
} 

Antworten auf die Frage(2)

Ihre Antwort auf die Frage