如何在 Django 中 link 我的 HTML 表单到视图 class

How to link my HTML form to a view class in Django

post_form.Html

这是一个 Html 页面,其中包含要更新和创建的表单,我们知道在 Django 中创建和更新视图 Class 使用相同的表单

     <form method="post">
    {% csrf_token %}
    <div class="form-group">
        <label for="PostInput">PostTitle</label>
        <input class="form-control" type="text" name="post" placeholder="Name" value="{{ post.postname }}">
    </div>
    <div class="form-group">
        <label for="descrInput">Description</label>
        <input class="form-control" type="text" id="descrInput" placeholder="Description" value="{{ post.description }}">
    </div>
    <input type="submit" value="Save">
</form>

Views.py

class CreatePost(CreateView):
    model = post
    fields = ['title', 'content']

class UpdatePost(UpdateView):
    model = post
    fields = ['title', 'content']

现在,问题是我如何 link 这个表单与上面的 html 页面 已经在网页中有表单或输入字段 本身。我知道如何使用函数视图来做到这一点,但我没有得到任何关于此的材料、教程。任何关于此的 Material 都会有所帮助

您可以像这样覆盖 CreateView().post() and UpdateView().post() 方法

class CreatePost(CreateView):
    model = post
    fields = ['title', 'content']
    
    def post(self, request, *args, **kwargs):
        # Get your data from post request eg. request.POST['mykey']
        return redirect('success_page')

class UpdatePost(UpdateView):
    model = post
    fields = ['title', 'content']

    def post(self, request, *args, **kwargs):
        # Get your data from post request eg. request.POST['mykey']
        return redirect('success_page')

注意 :您已经用小写字母创建了 post 模型 class ,这不是好的做法总是在 CapWords。因为你把你的 class 写成小写 python 会把你的 post class 当作 post 方法,否则可能会导致逻辑错误。