2017-07-08 19 views
0

「Edit」ボタンをクリックするたびにUpdateViewフォームを同じページに表示するようにします。djangoのCreateViewフォームと同じページにUpdateViewフォームを表示

<button type="button" class="edit_btn" data-url="{% url 'parts:stock_update_view' stock.id %}">Edit</button> 

編集ボタンのためのAjax:

  $.ajax({ 
      url: $(this).data('url'), 
      data: {    
      }, 
      dataType: 'json', 
      success: function (data) { 
      alert(data.name); 
      } 
     }); 
    } 
    }); 
class stock_update_view(UpdateView): 
    model = part_stock 
    fields = ['part_id','entry_date','supplier','amount','remaining'] 
    success_url = reverse_lazy('parts:part_list') 
    template_name = 'part_detail.html' 

    def get_context_data(self, **kwargs): 
     context = super(stock_update_view, self).get_context_data(**kwargs) 
     context['update_form'] = context.get('form') 
     return context 

    def get(self, request, *args, **kwargs): 
     username = request.GET.get('username', None) 
     data = { 

     } 
     return JsonResponse(data) 

私は[ 'update_form']私は私のtemplate.after返す文脈でそれをレンダリングすることができるようにjsonResponseとしてUpdateViewフォームを取り戻すしたい= context.get(」フォーム ')私は私のテンプレートで事前に塗りつぶされたフォームをレンダリングできる私はそれを返すことができますか?

答えて

0

あなたはこのようget_initial()関数を定義することができます

def get_initial(self): 
    initial = { 
       'part_id' : self.request.user.part_id 
       'entry_date: self..... 
       } 
    return initial 

この機能を使用すると、コンテキストに渡しているフォームを事前に移入されます。

関連する問題