当前位置: 首页 > 面试题库 >

Django基于类的DeleteView的示例

桑思远
2023-03-14
问题内容

有谁知道或可以请提供一个简单的Django基于类的通用DeleteView示例吗?我想继承DeleteView的子类,并确保当前登录的用户在删除对象之前拥有该对象的所有权。任何帮助将不胜感激。先感谢你。


问题答案:

这是一个简单的例子:

from django.views.generic import DeleteView
from django.http import Http404

class MyDeleteView(DeleteView):
    def get_object(self, queryset=None):
        """ Hook to ensure object is owned by request.user. """
        obj = super(MyDeleteView, self).get_object()
        if not obj.owner == self.request.user:
            raise Http404
        return obj

注意事项:

  • DeleteView不会删除GET请求; 这是你提供带有此视图template_name的“是,我确定”按钮的确认模板(你可以在class属性中提供名称)POST的机会。
  • 你可能更喜欢错误消息而不是404?在这种情况下,请改写delete方法,在get_object调用后检查权限并返回自定义响应。
  • 不要忘记提供与(可选的,可自定义的)success_url类属性匹配的模板,以便用户可以确认该对象已被删除。


 类似资料:
  • 问题内容: 我试图实现一个显示表集的选择。如果是第一次请求该站点,则应显示数据集。我希望POST提交,但是GET也可以。 这是一个很容易处理的问题,但是对于基于类的视图,我很难理解。 我的问题是,由于对基于分类的视图的了解有限,导致出现各种错误。我已经阅读了各种文档,并且了解了直接查询请求的视图,但是一旦我想向查询语句中添加表单,就会遇到不同的错误。对于以下代码,我收到了。 根据表单条目(否则选择

  • 问题内容: 我正在做一个视图(使用Django的通用视图DeleteView)从模型中删除实例,但它会级联并从其他模型中删除实例: 我想要做的是像管理界面一样显示将要删除的相关项目的列表,例如: 问题答案: 你可以使用 Django 使用的类来确定要在级联中删除的对象。实例化它,然后调用它传递要删除的对象。它需要一个列表或查询集,因此,如果只有一个对象,只需将其放在列表中: instances_w

  • 本文向大家介绍Django实现基于类的分页功能,包括了Django实现基于类的分页功能的使用技巧和注意事项,需要的朋友参考一下 开发个人博客时往往避免不了分页功能的实现,实现方法大体上分为函数和类两种。本文基于类实现分页功能,以下是详细代码: 通过修改per_page、max_page控制每页展示的文章数和分页模块展示的最大页码数。 实现思路:创建page类对象,传入参数为page_num(当前页

  • 问题内容: 主视图是一个简单的分页ListView,我想向其中添加搜索表单。 我认为这样可以解决问题: 但是显然我错了..我在官方文档中找不到该怎么做的方法。 建议? 问题答案: 这些答案对引导我朝正确的方向大有帮助。谢谢大家 对于我的实现,我需要一个窗体视图,该窗体视图同时在get和post上返回ListView。我不喜欢重复get函数的内容,但需要进行一些更改。现在,self.form也可以从

  • 问题内容: 我正在寻找有关其他人如何设计此方法的意见。我将提供基于类(Django组)的视图。 例如,用户组将确定他或她将有权访问哪些视图/模板。我正在考虑也许在表中存储用于查看功能的路径,以确定用户的链接栏将由什么组成。过滤器规范也可以存储,以确定哪些行将填充这些模板。 医院护理单位就是一个很好的例子。一个单位的护士不必看整个医院的病人。他们只需要去看病人。同一部门的医生也只需要看望那些患者,但

  • 问题内容: 我不清楚在Django 1.5中如何最好地在基于类的视图中访问URL参数。 考虑以下: 视图: URLCONF: 我想在我的视图中访问参数,因此可以执行以下逻辑: 例如,如何最好地访问CBV中被子类化的url参数,理想情况下应将逻辑放置在哪里?在某种方法上? 问题答案: 要在基于类的视图中访问url参数,请使用或,这样你就可以通过