【问题标题】:Django TemplateView vs DetailViewDjango TemplateView 与 DetailView
【发布时间】:2018-03-13 16:16:29
【问题描述】:

我正在开发一个应用程序,该应用程序具有多个用户配置文件模型,OneToOne 字段为 auth.User。对于特定类型的配置文件仪表板,例如 VendorSales,最好的做法是编写一个在 url 中获取 VendorSales ID 的 DetailView,或者只使用没有 url pk 的 TemplateView 并在模板和 self 中引用 request.user.vendorsales .request.user.vendorsales 在上下文数据中?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    当您使用 DetailView 时,您不需要在 URL 中使用主键或 slug -- 您可以覆盖 get_object 并通过 self.request.user 访问对象。

    def get_object(self):
        return self.request.user.vendorsales
    

    无论您使用DetailView 还是TemplateView,您都可能会发现LoginRequiredMixin 对限制对视图的访问很有用。

    【讨论】:

      【解决方案2】:

      如果您希望您的视图能够在重新加载时使用,您应该在 url 中添加某种 id。

      如果您希望以 RESTfull 方式为您的应用程序/api 建模,那么您不仅应该考虑放入一个 url,还要将此视图理解为一个新的资源 -> 产生一个几乎没有连接的新视图到用户视图(链接网址除外)。

      【讨论】:

        猜你喜欢
        • 2014-07-07
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 2018-11-18
        • 2023-03-03
        相关资源
        最近更新 更多