2017-07-06 4 views
1

Je crée un objet de paiement en utilisant Django CreateView puis je souhaite passer le id de cet objet à une autre fonction de vue pour faire et afficher des calculs sur un autre modèle. Comment puis je faire ça?Id de passage de CreateView à une autre fonction après création de l'objet

views.py:

class CreatePayment(CreateView): 
    template_name = "inventory/new_payment.html" 
    success_url = reverse_lazy('inventory:payments_page') 
    model = Payments 
    fields = ('payment_number', 'customer','agent', 'amount') 

html:

<body> 

<form action="{% url 'inventory:new_payment'%}" method="post"> 
    {% csrf_token %} 
    {{form}} 

    <button type="submit", value="Add">Add</button> 
</form> 

</body> 

urls:

url(r'newpayment/$', CreatePayment.as_view(), name='new_payment') 

Répondre

1

Ajouter un paramètre à votre autre point de vue et url et l'utilisation get_success_url:

def get_success_url(self): 
    success_url = reverse_lazy('inventory:payments_page', {'id': self.object.pk}) 
    return success_url 
1

Je l'ai fait en redéfinissant la get_success_url dans CreateView comme ceci:

def get_success_url(self): 
    return reverse('inventory:transaction', args=(self.object.id,)) 
+0

Alors, pourquoi avez-vous ma réponse non acceptable? –

+0

fait par erreur –

+0

Je me demandais juste, j'espère que ça n'a pas semblé impoli! –