如何在 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 方法,否则可能会导致逻辑错误。
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 方法,否则可能会导致逻辑错误。