【问题标题】:POST or not? render_to_response() or render()? [duplicate]POST 与否? render_to_response() 还是 render()? [复制]
【发布时间】:2017-05-03 21:09:02
【问题描述】:

我是 Django 的新用户。我想通过单击按钮发送电子邮件(用于传真)。所以我在视图CustomerRequestUpdateView 中创建了方法send_fax。我在这里有点困惑。此方法是否必须使用 POST 请求?如何将“send_fax”渲染到我的模板?我希望该方法可以直接在类中实现。

class CustomerRequestUpdateView(RequestUpdateView):
    template_name = 'loanwolf/customers/request.html'
    url_namespace = 'customers'

    def send_fax(self):

        subject = 'The contract of %s' % self.customer.email_user
        contact_message = 'This is just a test for later on during this project'
        from_email = settings.EMAIL_HOST_USER
        to_email = [from_email, ]

        send_mail(
            subject,
            contact_message,
            from_email,
            to_email,
            fail_silently=False,
        )

    return #render(request, template_name, context) render_to_pdf()

我以为我可以使用render_to_response() 或只使用render(),但我的方法使用self,而不是request。有人可以在这里帮助我吗?

提前致谢!

【问题讨论】:

  • 该方法不会执行任何操作,只会执行名为 http 请求之一的函数
  • 相关:Dispatch code

标签: django render


【解决方案1】:

您想在页面上显示什么? 您不需要基于类的视图来执行此操作(尽管您可以使用它)。你可以简单地写:

def my_view(request):
    send_mail(paramters here)
    # Add whatever object you think you'd need on the page in the context (the 
    # third paramter of render {}.
    # render adds request to response so it's preferred. render_to_response may be deprecated soon. If it has not been already
    return render(request, 'loanwolf/customers/request.html', {})

【讨论】:

    猜你喜欢
    • 2012-07-18
    • 2011-07-06
    • 1970-01-01
    • 2020-09-07
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多