跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请问一下有会 django 的么?请教一个问题
未分類
6 5 月 2020

请问一下有会 django 的么?请教一个问题

请问一下有会 django 的么?请教一个问题

資深大佬 : dengwen168 12

我想使用 django.contrib.comments 给我的网站添加一个评论功能,

按照网上的教程( https://mozillazg.com/2013/01/django-built-in-comments-framework.html )设置好了。

可是我测试了一下,点击提交评论之后,它自动跳转到了: http://127.0.0.1:8000/comments/post/

这个地址,然后报错:Exception Value: list index out of range

我现在的问题是: 1.比如,设置好 django.contrib.comments 之后,我还需要自己在 views 中写 if request.method ==post 这样的来处理这个 post 请求吗?还是 django.contrib.comments 已经写好了,我根本不用管了。

2.可是为什么我的不成功。我看他的报错信息那一行 city_details = Current.objects.filter(resortid = resortid) city_name = city_details[0].name

,在正常访问时,是没有问题的,不知为什么发了评论之后就出问题。

请问有人知道原因么?谢谢。

大佬有話說 (13)

  • 資深大佬 : jizai01

    list index out of range,python 列表 越界,和 django 无关,自己打印一下 city_details 吧

  • 資深大佬 : EricCartmann

    问题 2 里面那句代码出错了,列表溢出,仔细想想列表有没有 0 这个索引。这是 Python 代码问题,和 django 没有关系。

  • 主 資深大佬 : dengwen168

    @EricCartmann 可是这个页面我正常进入的时候访问是正常的,只有在发布了评论之后才报错。
    这个怎么修复呢?

  • 資深大佬 : wdxm2008

    用 try 来排除下 我 python 是到有可能报错的地方 print 一下 然后 用 try 看看

  • 主 資深大佬 : dengwen168

    @EricCartmann 想请教一下,django.contrib.comments 发布评论之后,默认跳转到的网址是哪一个?
    我看我的报错是不是网址没有传 resortid,导致没有查到数据,所以出现 Exception Value: list index out of range

  • 資深大佬 : ytmsdy

    try this…..
    “`
    city_details = Current.objects.filter(resortid = resortid)
    if len(city_details)>0:
    city_name = city_details[0].name
    “`

  • 資深大佬 : ytmsdy

    “`python
    city_details = Current.objects.filter(resortid = resortid)
    if len(city_details)>0:
    city_name = city_details[0].name
    “`

  • 資深大佬 : triangle111

    django 的 filter 方法是从数据库的取得匹配的结果,返回一个对象列表。
    如果记录不存在的话,它会返回[]。所以你这里应该是空列表取第 0 个报的数组越界

  • 資深大佬 : hello2060

    放个断点,一步步跟下去就行了,至少 IDE 会告诉你 CRASH 在哪一行吧,你在那行放断点或者把变量都打出来就行了,看看哪个操作用了下标操作。

  • 資深大佬 : Real00

    我感觉跟上的想法差不多
    city_details = Current.objects.filter(resortid = resortid)
    city_name = city_details[0].name
    city_details 的长度如果为空,你取 0 就越界了,这个问题跟 django 无关,不过建议还是熟悉一下 py 的语法再上手框架会比较好
    至于为啥会空,继续深究的话,得看看 resortid 这个值是否存在在数据库了

  • 資深大佬 : johnman

    filter 如果查不到数据,返回 None,你再操作,当然会报错

  • 資深大佬 : Vegetable

    我惊呆了,2020 年了还在看 2013 年的教程?
    甚至这个插件 django 1.6 就分离出去了,教程中还在用 syncdb..

  • 主 資深大佬 : dengwen168

    好吧,这个问题终于解决了。
    插件没有任何问题,是我的 url 配置写得不严谨,导致发表评论之后,url 匹配错了,所以才报以上的错误。
    我将这个插件的 url 放到第一行,问题说解决了。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具