您现在的位置是:首页 > 文章详情

基于django的视频点播网站开发-step13-后台反馈功能

日期:2019-02-19点击:452

用户反馈管理功能,是对前端用户反馈的问题进行展示,并可实现删除功能。是一个很实用的功能,也算是当代网站的标配。它可以实时的跟踪到用户对网站的各种意见和吐槽,开发者能及时修缮网站功能或者修改网站bug。

Demo地址

反馈管理包括反馈列表和反馈删除,它们的路由是

path('feedback_list/', views.FeedbackListView.as_view(), name='feedback_list'), path('feedback_delete/', views.feedback_delete, name='feedback_delete'),

分别表示反馈列表和反馈删除功能。

列表是由FeedbackListView负责来展示,代码如下

class FeedbackListView(AdminUserRequiredMixin, generic.ListView): model = Feedback template_name = 'myadmin/feedback_list.html' context_object_name = 'feedback_list' paginate_by = 10 q = '' def get_context_data(self, *, object_list=None, **kwargs): context = super(FeedbackListView, self).get_context_data(**kwargs) paginator = context.get('paginator') page = context.get('page_obj') page_list = get_page_list(paginator, page) context['page_list'] = page_list context['q'] = self.q return context def get_queryset(self): self.q = self.request.GET.get("q", "") return Feedback.objects.filter(content__contains=self.q).order_by('-timestamp')

同样是继承自ListView通用视图,同样是配置了model、template、分页。在get_context_data()函数中,传递了分页数据;在get_queryset()中,传递了搜索数据。

展示如下

当你删除一条的时候,会触发相应的ajax代码,ajax位于static/js/myadmin/feedback_list.js,ajax最终的幕后黑手是feedback_delete接口,它位于myadmin/views.py,

@ajax_required @require_http_methods(["POST"]) def feedback_delete(request): feedback_id = request.POST['feedback_id'] instance = Feedback.objects.get(id=feedback_id) instance.delete() return JsonResponse({"code": 0, "msg": "success"})

获取到 feedback 实例后,通过instance.delete()删除之。

原文链接:https://yq.aliyun.com/articles/690770
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章