Django类视图之——CreateView
Django类视图,就是为了简化开发,提高效率而存在。网站中经常会用到的功能,Django宝妈怎么会没有帮你想到呢?
网站中经常用到的功能,从类的创建,新增。我们需要构建模型,编写视图,创建表单,设计模板等几项步骤。
例如:新增一个博客的类,并且做出写博客的功能。
入门的方法:
设计models、编写views函数视图、创建forms表单、设计html模板,当然不能忘了添加urls路由。
类视图方法:
设计models、
设计model时把get_absolute_url()
也写好。保存表单后会重定向到这里写的url。
def get_absolute_url(self):
return reverse("_detail", kwargs={"pk": self.pk})
编写views类视图、
不同的类视图有不同的作用,这篇博客重点说CreateView
。
class ModelCreateView(LoginRequiredMixin,CreateView):
model = Model
fields = []
template_name = ".html"
def form_valid(self, form):
form.instance.created_by = self.request.user
return super().form_valid(form)
fields
后写表单字段。之后就可以在模板中直接使用。
form_valid
验证表单。
LoginRequiredMixin
防止那些未登录的用户访问表单。可加可不加。
html模板
在html中用{{ form }}即可展示表单。
<form class="form-horizontal" action="#" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" class="btn btn-info" value="submit" />
</form>
点击提交按钮,新对象被保存,并重定向到get_absolute_url
的地址。