【问题标题】:Passing Id from CreateView to another function after creating the object创建对象后将 Id 从 CreateView 传递给另一个函数
【发布时间】:2017-07-06 11:47:53
【问题描述】:

我正在使用 Django CreateView 创建一个 Payment 对象,然后我想将此对象的 id 传递给另一个视图函数,以在另一个模板上进行和显示一些计算。我该怎么做?

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>

网址:

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

【问题讨论】:

    标签: python django django-templates django-views create-view


    【解决方案1】:

    将参数添加到您的其他视图和 url 并使用 get_success_url:

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

    【讨论】:

      【解决方案2】:

      我通过覆盖CreateView 中的get_success_url 来做到这一点,如下所示:

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

      【讨论】:

      • 搞错了
      猜你喜欢
      • 2019-06-06
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      相关资源
      最近更新 更多