2017-01-19 20 views
0

は私がへの各リンクは、この支払いのIDを持っている示し支払いajaxを使用してDjangoでの編集を実装する方法は?

<table class="table" id="payments"> 
    <thead> 
     <tr> 
      <th>Date</th> 
      <th>Description</th> 
      <th>Comment</th> 
      <th>Amount</th> 
      <th>Show</th> 
      <th>Edit</th> 
      <th>Destroy</th> 
     </tr> 
    </thead> 

    <tbody> 
     {% for payment in payments %} 
      <tr> 
       <td>{{ payment.created_date|date:'Y-m-d H:i' }}</td> 
       <td>{{ payment.description }}</td> 
       <td>{{ payment.comment }}</td> 
       <td>{{ payment.amount }}</td> 
       <td><a id="{{ payment.pk }}" class="show_payment">Show</a></td> 
       <td><a id="{{ payment.pk }}" class="edit_payment">Edit</a></td> 
       <td><a id="{{ payment.pk }}" class="destroy_payment">Destroy</a></td> 
      </tr> 
     {% endfor %} 
    </tbody> 
</table> 

を持つテーブルがあります。このリンクをクリックすると、フォームには適切な支払いの事前入力データが表示されますが、をクリックすると、が新しい支払いを作成します。

$(".edit_payment").click(function() { 
    var payment_id = $(this).attr('id'); 
    $.ajax({ 
     url: '/payment/'+payment_id+'/edit/', 
     type: 'get', 
     success: function (data) { 
      $('#hide_payment').show(); 
      $("#payments").after(data); 
      $('#hide_payment').click(function(){ 
       $("#payment_form").remove(); 
       $('#hide_payment').hide(); 
      }); 
     } 
    }); 
}); 

$(document).ready(function(){ 
    $('#payment_form').hide(); 
    $('#hide_payment').hide(); 
    //$("#submit_payment").click(function() { 
    var form = $("#payment_form"); 
    var options = { 
     success: function(data){ 
      // var new_element = $(data).find('tr:last'); 
      // $("#payments").append(new_element); 
      $('#payment_form').hide(); 
     }, 
     clearForm: true 
    }; 
    $('#payment_form').on('submit', function() { 
     $(this).ajaxSubmit(options); 
     return false; 
    }); 
}); 

しかし、この支払いを編集して新しいものを作成しないようにしたいと思います。

def payment_edit(request, pk): 
    if request.user.is_authenticated(): 

     if request.user.has_perm('tracker.admin') or request.user.has_perm('tracker.manager'): 
      payment = get_object_or_404(Payment, pk=pk) 

      if request.method == "POST": 
       form = PaymentForm(request.POST, instance=payment) 

       if form.is_valid(): 
        payment = form.save(commit=False) 
        payment.save() 
        return redirect('payment_list') 
      else: 
       form = PaymentForm(instance=payment) 
      return render(request, 'tracker/payment_edit.html', {'form': form}) 

支払フォーム

class PaymentForm(forms.ModelForm): 
    class Meta: 
     model = Payment 
     fields = ('comment', 'description', 'amount', 'created_date') 
+0

payment_editメソッドでprintステートメントを使用して、それが使用されているかどうかを確認できますか? – SomeSillyName

+0

私はプリントを置く、それは使用されています。 –

+0

問題は、私が同じPaymentFormとテンプレートを使って作成し更新するということでしょうか? –

答えて

0

私はちょうど私のテンプレートを書き直しする必要がありました:フォームでURLリンクを使用します。

関連する問題