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

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

posted @   Tom19971220  阅读(6)  评论(0编辑  收藏  举报  
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
个人网站
点击右上角即可分享
微信分享提示