如何将方法添加到类模板视图

Posted

技术标签:

【中文标题】如何将方法添加到类模板视图【英文标题】:how to add a method to a class template view 【发布时间】:2021-04-09 01:05:57 【问题描述】:

大家新年快乐...我是 django 的新手,我正在做一个项目,一个简历页面我需要联系我部分的帮助,我想做一些我在视频中看到的事情 https://www.youtube.com/watch?v=w4ilq6Zk-08。我以前学的书只用class来查看模板。下面是我的代码

from django.views.generic import TemplateView
from django.shortcuts import render
# Create your views here.
class ProfilePageView(TemplateView):
    template_name = 'femi_profile.html'

    def contact(request):
        if request.method == "POST":
            name = request.POST['name']
            email = request.POST['email']
            subject = request.POST['subject']
            message = request.POST['message']

            return render(request, 'femi_profile.html', 'contact_name': name)

        else:
            return render(request, 'femi_profile.html', )

【问题讨论】:

【参考方案1】:

在再次阅读了 django 文档https://docs.djangoproject.com/en/3.1/topics/class-based-views/intro/ 并尝试了不同的代码行之后,我终于得到了运行,我不是在问它为什么运行?我想出了如何解决这个问题。

在下面找到正确的代码

from django.views.generic import TemplateView
from django.shortcuts import render
# Create your views here.

class ProfilePageView(TemplateView):
    template_name = 'femi_profile.html'

    def get(self, request, *args, **kwargs):
        return render(request, self.template_name, )

    def post(self, request, *args, **kwargs):
        if request.method == "POST":
            name = request.POST['name']
            email = request.POST['email']
            subject = request.POST['subject']
            message = request.POST['message']

            return render(request, self.template_name, 'contact_name': name)

【讨论】:

以上是关于如何将方法添加到类模板视图的主要内容,如果未能解决你的问题,请参考以下文章

如何将视图条目计数传输到类方法

通过引用或值捕获句柄到类模板ctor

使用Umbraco 7.2网格视图,如何将网格视图插入模板?

如何将模板视图和slug定义添加到一个视图中?

iOS Instrumentation:如何解释内存分配模板?

如何将 url 参数传递给视图以供其他类函数和模板使用