/ / django zmena modelu z inštancie - python, django

inštancia zmeny modelu django - python, django

Existuje nejaký jednoduchý spôsob, ako zmeniť inštanciu modelu modelu Django po jeho inicializácii?

Napríklad nasledovné by vopred vyplnilo formulár v šablóne obsahom, ktorý je momentálne v db pre objekt s ID 1:

form = exampleModelForm(instance = Model.objects.get(pk=1)

Toto tiež uloží príslušný objekt, keď sa volá save (), a nie vytvárať nový.

Ak to vytvorí nový objekt a nevyplní formulár v šablóne, postupujte nasledovne:

form = exampleModelForm()

Keď vraciam prázdny formulár z inéhometóda, potom by som jej chcel po vytvorení priradiť inštanciu a upraviť objekt tak, aby sa dal uložiť a šablóna je vopred vyplnená hodnotami, ktoré existujú v db. Chcem niečo také, ale Zdá sa, že to, čo som „vyskúšal, nefunguje:

form = methodThatGetsForm(somearg)
form.instance = ExampleModel.objects.get(pk = getId(somearg))

Existuje jednoduchá funkcia, ktorá mi tu chýba?

odpovede:

2 pre odpoveď č. 1

Toto som NESTESTOVAL, ale zaujímalo by ma, či môžete znova inicializovať nový formulár s vrátenými údajmi formulára a inštanciou ako novým objektom.

form = methodThatGetsForm(somearg)
new_form = ExampleModelForm(form.cleaned_data, instance=ExampleModel.objects.get(pk=getID(somearg)))
new_form.save()

Ak nie, mal by existovať spôsob, ako získať údaje ako slovník párov kľúč / hodnota pre polia z form vrátil, pomocou ._meta údaje. Myslím, že ak pošlete tento slovník do formulára init, priradí tieto hodnoty objektu inštancie, rovnako ako jeho odoslanie request.POST.