Django 中多个视图中的相同 URL

2024-03-08

我正在开发一个网络应用程序,我需要这样的东西:

url(r'^$', 'collection.views.home', name='home'),
url(r'^$', 'collection.views.main', name='main'),

如果用户已通过身份验证,则转到 main,否则返回 home。在主页上,不同的是会有一个登录按钮。但这些应该采用相同的 URL 模式。

我该如何处理?


要处理此类事情,您可以使用单个视图,该视图根据请求状态遵循不同的代码路径。这可能意味着一些简单的事情,比如设置一个上下文变量来激活登录按钮,也可能意味着一些复杂而灵活的事情,比如调用不同的函数 - 例如,您可以编写您的 home 和 main 函数,然后有一个调度视图来调用它们,具体取决于身份验证状态并返回 HTTPResponse 对象。

如果您需要检查的只是身份验证,您甚至不需要设置上下文变量 - 只需使用RequestContext实例,例如如果您使用render捷径。如果你这样做,request将在上下文中,以便您的模板可以检查诸如{% if request.user.is_authenticated %}.

一些例子:

def dispatch(request):
    if request.user.is_authenticated:
        return main(request)
    else:
        return home(request)

或者对于更简单的情况:

def home(request):
    if request.user.is_authenticated:
        template = "main.html"
    else:
        template = "home.html"
    return render(request, template)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 中多个视图中的相同 URL 的相关文章

  • django 组合对两个不同基本模型的查询

    我有两个不同的查询集 我想将两个查询集合并 q1 tbl nt 123 objects values list id value geometry filter restriction height exclude condition id
  • 测试中的模型 - Django 1.7 问题

    我正在尝试将我的项目移植为使用 Django 1 7 除了一件事之外 一切都很好 测试文件夹内的模型 Django 1 7 新迁移在内部运行 migrate 命令 在运行syncdb之前 这意味着如果模型未包含在迁移中 它将不会填充到数据库
  • Django 自定义 UserManager 中的 self.model()

    所以 我对 Django 还很陌生 尽管我的代码在遵循 Django 文档 在 Django 中自定义身份验证 之后工作 但我不明白他们的示例中的 self model 实际如何工作 它来自哪里以及它如何与 自己 这是在文档底部找到的示例
  • 使用javascript向url添加哈希而不滚动页面?

    在不滚动页面的情况下向 url 添加哈希 使用 JavaScript 我打开页面 我向下滚动 我单击添加哈希的链接 可能带有值 test 示例 http www example com test http www example com t
  • 在子管理中显示父字段(list_display)

    这是 models py 的片段 class Applicant models Model name models CharField email models CharField class Application models Mode
  • 在 modelformset 工厂中使用自定义表单?

    我希望能够在 modelformset factory 中使用自定义表单 例如 模型 py class Author models Model name models CharField address models CharField c
  • Http POST 删除 URL 中的端口

    我有一个用 Django 构建的网络应用程序 我目前正在家里的路由器后面的笔记本电脑上运行它 我将路由器配置为将发送到特定端口的所有流量路由到该笔记本电脑 我将 Nginx 作为 Apache 的反向代理 使用 mod wsgi 来运行 D
  • 媒体文件不在 cpanel 上的 django 应用程序中提供

    我有一个 django 应用程序在 cpanel 上运行 我不确定是否是我的问题 django 应用程序或 cpanel 服务器 当设置调试模式时True 我可以看到所有媒体文件 例如个人资料图片或pdf文件等 但是当设置调试模式时Fals
  • 在身份验证上运行 Django 测试时出现“重复键值”错误

    我有一个运行良好的 Django 网站 它的数据库中有少量数据 我想用它来进行测试 我已经完成了 dumpdata 来生成一些 json 固定装置 但是 当我尝试在我的应用程序 tagger 上运行测试时 我收到 Postgresql 错误
  • Django 表单:在提交到数据库之前要求确认

    更新 解决方案可以作为单独的答案找到 我正在制作一个 Django 表单 以允许用户将电视节目添加到我的数据库中 为此 我有一个Tvshow模型 一个TvshowModelForm我使用通用的基于类的视图CreateTvshowView U
  • 如何在 Django 1.4 中自定义管理过滤器

    我是 Python 和 Django 开发的新手 我从社区提供的易于阅读的示例中学到了很多东西 但最近我想为 Django 附带的管理控制台实现一个自定义的管理过滤器 我进行了很多搜索 只发现了一些过时的方法来完成它 例如 Django 1
  • Android Lollipop 上的海拔 + 透明度错误

    在 API 21 上为具有一些 alpha 例如 99fe0038 和一些高程的视图使用背景颜色会显示两个圆圈 一个用于视图本身 另一个用于内部 标高和背景颜色通过代码设置 view setElevation getResources ge
  • Django 管理中的自定义验证

    我有一个非常简单的 Django 应用程序 用于记录同事的讲座 由于它非常初级 所以我使用 Django 管理本身 这是我的 models py models py from django db import models class Le
  • 什么是 RFC 2396?

    有人能告诉我 RFC 2396 与 NSURL 或其他相关的术语的含义吗 RFC 2396 http www ietf org rfc rfc2396 txt描述 URI 的语法和格式 维基百科有很好的概述 http en wikipedi
  • 让 Django 提供可下载文件

    我希望网站上的用户能够下载路径被遮挡的文件 因此无法直接下载它们 例如 我希望 URL 是这样的 http example com download f somefile txt 在服务器上 我知道所有可下载的文件都位于该文件夹中 home
  • pip install django_compressor 时命令 cl.exe 失败

    我发布此消息是因为我遇到了这个问题 并且已经尝试解决这个问题好几天了 但未能成功 当我尝试安装 django compressor pip install django compressor 时 我遇到以下错误 请参阅附件 我在网上搜索解决
  • ViewPager 的 Android Viewholder

    您好 我正在使用 ViewPager 但我现在想保留状态 而不是重新生成单元格 我注意到 viewpager 与 listviews 的自定义适配器非常相似 它们的功能类似 listview 在单元格不再出现在屏幕上后重新生成单元格中的数据
  • 401 Unauthorized("detail":"未提供身份验证凭据。")

    我在后端使用 djoser 的身份验证 当我通过具有内容类型和授权标头的邮递员在 account me 发出获取请求时 我得到了正确的响应 但是当我尝试从我的角度客户端执行相同的请求时 我得到401 Unauthorized detail
  • 有效的 URL 分隔符

    我有一个很长的 URL 其中包含多个值 示例1 http www domain com list seach type 0 search period 1 search min 3000 search max 21000 search ar
  • Django - 渲染到字符串无法加载 CSS

    我正在尝试使用 Django 1 8 render to string 通过管理命令将 html 转换为 pdf 而不是使用 View request 以下代码可以将模板转换为 pdf 但它无法将 CSS 加载到模板中 def html t

随机推荐

  • 在 PHP 中,什么是二进制字符串(b'xxxx')?

    什么是b 二进制字符串 在 PHP 语句中的意思 str b xxxxxx The PHP 语言参考 http www php net manual en function is binary php描述unicode字符串和原生二进制字符
  • HashMap 不可序列化

    HashMap with Serializable键 值应该是Serializable 但这对我不起作用 尝试了其他一些IO流 没有一个有效 有什么建议吗 测试代码 public class SimpleSerializationTest
  • Modernizr.touch 在 Firefox 浏览器上返回 true

    我编写了一段代码来获取基于触摸和非触摸的事件 它适用于除 Firefox 之外的所有其他浏览器和设备 默认 FF 返回true var thumbsEvent isTouch Modernizr touch detect the touch
  • mysql中正则表达式匹配的十六进制字符

    我发现 mysql 的行为非常奇怪 下面的选择返回 0 SELECT CONVERT a USING BINARY REGEXP x61 然而 下面语义相同的 select 返回 1 SELECT CONVERT a USING BINAR
  • 仅在滚动时触发一次函数(scrollstop)

    所以 我只想在滚动时触发一次函数 使用滚动停止 https stackoverflow com questions 16867266 peform a function if an element is completely in the
  • 如何更改行结束设置

    是否有文件或菜单可以让我更改如何处理行结尾的设置 我读到有 3 个选项 Windows 风格的签出 Unix 风格的提交 Git 在签出文本文件时会将 LF 转换为 CRLF 什么时候 提交文本文件时 CRLF 将转换为 LF 为了 跨平台
  • Jquery:当输入值被另一个函数更改时,.on('input') 不会触发

    这是代码 input type text on input function stuff here first function input type text click function second function keyboard
  • Rhino - 模拟类而不覆盖虚拟方法

    如果我正在模拟一个类 如下所示 有什么方法可以让模拟not重写虚拟方法 我知道我可以简单地删除 virtual 修饰符 但我实际上想稍后删除此方法的行为 换句话说 除了删除 virtual 修饰符之外 如何才能通过此测试 namespace
  • 递归查找子集

    这是我尝试创建的一个递归函数 用于查找 STL 集中传递的所有子集 这两个参数是一个用于搜索主题的 STL 集 以及一个数字 i gt 0 它指定子集应该有多大 如果整数大于集合 则返回空子集 我认为我这样做不正确 有时是对的 有时则不是
  • 在 Erlang 中如何将元组对列表转换为记录?

    假设我有这个 record my record foo bar baz Keyvalpairs foo val1 bar val2 baz val3 Foorecord my record foo val1 bar val2 baz val
  • SimpleDateFormat 错误地解析字符串

    String s 19 17 38 008000 DateFormat f new SimpleDateFormat HH mm ss SSSSSS Date d f parse s system out println d 这是我正在运行
  • 有没有办法在 Windows 上使用 Qt 列出当前进程?

    使用 Qt 4 是否可以知道哪些进程正在运行 我正在寻找一种方法来等待用户关闭应用程序才能进行操作 我也不知道 Qt 解决方案 但使用CreateToolhelp32Snapshot Process32FirstW and Process3
  • 在后台任务中添加到 CALayer 时 UIImage 不显示

    在我的视图控制器中我有 IBOutlet var worldmapview Worldmapview var eventLayer CALayer CALayer 和一些功能 func create picture layer pathto
  • SVN 标签:如何不更新/签出它们?

    在许多项目中 我查看完整的存储库并获得标准目录结构 project branches tags trunk 如果我做一个svn up project 一切都很好branches and trunk文件夹 但是 当然 tags文件夹也更新了
  • 我无法将 postgresql schema.table 与 dplyr 包连接

    我正在尝试将 postgres 与 dplyr 函数连接 my db lt src postgres dbname mdb1252 user diego password pass my db src postgres 9 2 5 post
  • 带日期轴的箭袋或倒钩

    绘制箭袋或倒刺的时间序列 日期 的标准方法是什么 我经常在 Pandas DataFrame 中有时间序列 并像这样绘制它们 plt plot df index to pydatetime df parameter 这非常有效 x 轴可以被
  • 使用@font-face 使用多种自定义字体?

    我确信我错过了一些非常直接的东西 一直使用带有普通字体的单个自定义字体 font face font family CustomFont src url CustomFont ttf 当我使用它时一切正常 但如果我想添加另一种自定义字体我该
  • StandardML 中的 y 组合器

    我知道我可以用 SML 编写 y 组合器 如下所示 首先声明一个新的数据类型来绕过由于循环而导致的类型不匹配 datatype a mu Roll of a mu gt a val unroll fn Roll x gt x 现在您可以轻松
  • 使用 GitLab API 设置外部问题跟踪器设置?

    我将 GitLab 与外部问题跟踪器 JIRA 一起使用 并且效果很好 我的问题是当我创建一个新的 GitLab 项目 使用 API 时 我必须进入 GitLab 的项目设置并manually选择我想要使用的问题跟踪器并manually输入
  • Django 中多个视图中的相同 URL

    我正在开发一个网络应用程序 我需要这样的东西 url r collection views home name home url r collection views main name main 如果用户已通过身份验证 则转到 main