2016-12-28 3 views
0

クライアントを作成するためのフォームを作成しましたが、それを変更するためのフォームを作成しましたが、変更フォームがデータベースの情報を持たないという問題があります。djangoデータベースから編集用データを取り込みます

データのあるフィールドのない基本フォームを表示します。

ビュー:

def cliente_update(request, id=None): 
    queryset = get_object_or_404(Cliente, id=id) 
    if request.method == 'POST': 
     form = ClienteForm(request.POST or None, instance=instance) 
     if form.is_valid(): 
      instance = form.save(commit=False) 
      instance.save() 
      # return HttpResponseRedirect(instance.get_absolute_url()) 
    else: 
     form = ClienteForm() 
    context = { 
     "titulo": "Editar informacion del Cliente", 
     "queryset": queryset, 
     "form": form, 
    } 
    return render(request, "clientes/form.html", context) 
+0

ここに、** ClienteForm **のコードがあります。あなたのforms.pyも共有してください。 –

答えて

2

あなたはelseブロックであなたのModelFormでinstanceパラメータを通して、あなたのClienteオブジェクトを渡す必要があります。

def cliente_update(request, id=None): 
    instance = get_object_or_404(Cliente, id=id) # renamed from queryset to instance 
    if request.method == 'POST': 
     form = ClienteForm(request.POST or None, instance=instance) 
     if form.is_valid(): 
      instance = form.save(commit=False) 
      instance.save() 
      # return HttpResponseRedirect(instance.get_absolute_url()) 
    else: 
     form = ClienteForm(instance=instance) 

    context = { 
      "titulo": "Editar informacion del Cliente", 
      "form": form, 
     } 
    return render(request, "clientes/form.html", context) 
+1

インスタンスは非常に混乱した名前の変数 'queryset'に含まれているように見えます。これは確かに名前を変更する必要があります。 –

+0

私は同意し、変数の名前を変更しました。 – ruddra

関連する問題