Python 获取绝对url时出现问题。ViewDoesNotExist捕获错误
我正在通过Django的实际项目工作,我被卡住了。我收到错误消息: 渲染时捕获的ViewDoesNotExist:已尝试在模块tagging.views中标记\u对象\u列表。错误是:“模块”对象没有“标记的对象列表”属性 如果我将entry\u archive.html中的所有“object”更改为“entry”,则错误会消失,但object.get\u absolute\u url除外。然后单击“读取完整条目”,它将重定向到/weblog/而不是绝对URL。奇怪的是,如果我将所有“object”引用保留为“object”,并将行更改为entry.get_absolute_url,则错误会消失,但上面的/weblog/redirect仍会发生 /cms/url.py:Python 获取绝对url时出现问题。ViewDoesNotExist捕获错误,python,mysql,django,Python,Mysql,Django,我正在通过Django的实际项目工作,我被卡住了。我收到错误消息: 渲染时捕获的ViewDoesNotExist:已尝试在模块tagging.views中标记\u对象\u列表。错误是:“模块”对象没有“标记的对象列表”属性 如果我将entry\u archive.html中的所有“object”更改为“entry”,则错误会消失,但object.get\u absolute\u url除外。然后单击“读取完整条目”,它将重定向到/weblog/而不是绝对URL。奇怪的是,如果我将所有“objec
url(r'^weblog/', include('coltrane.urls.entries')),
/coltrane/url/entries.py
from django.conf.urls.defaults import *
from coltrane.models import Entry
# define entry_info_dict used for generic view
entry_info_dict = {
'queryset': Entry.objects.all(),
'date_field': 'pub_date',
}
# Generic Views URL Patterns
urlpatterns = patterns('django.views.generic.date_based',
# Weblog index - Generic View
url(r'^$', 'archive_index', entry_info_dict, 'coltrane_entry_archive_index'),
# Archive year - Generic View
url(r'^(?P<year>\d{4})/$', 'archive_year', entry_info_dict, 'coltrane_entry_archive_year'),
# Archive month - Generic View
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/$', 'archive_month', entry_info_dict, 'coltrane_entry_archive_month'),
# Archive day - Generic View
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/$', 'archive_day', entry_info_dict, 'coltrane_entry_archive_day'),
# Weblog detail - Generic View
url(r'^(?P<year>\d{4})/(?P<month>\w{3})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$', 'object_detail', entry_info_dict, 'coltrane_entry_detail'),
)
我在搜索时也看到过类似的问题,但大多数问题似乎都是通过weblog的url weblog/$解决的,而我的情况并非如此。为了确保我已经尝试将coltrane/url/entries.py中的第一个url更改为url(r'^'而不是url(r'^$),我仍然遇到同样的问题
谢谢您不应该在
模型中调用reverse()
。permalink
--只需返回元组即可
return reverse(…)
应该是return(…)
该错误与get_absolute_url无关。您似乎在某个地方尝试调用了名为tagged_objects_list的函数或属性。我把它放在那里了。这是另一篇文章中的建议。抱歉,我会将其编辑掉。我已经添加了删除Reverse后收到的错误。谢谢。@Dan,您应该删除它这是一个不同的问题。当你在任何地方使用reverse
时,所有的url都必须工作,因为django贯穿每个url项目。如果你有一段时间没有使用reverse,并且出现了大量错误,那就相当令人沮丧了!听起来好像异常被抑制了,你只是在重新加载页面,而n您单击一个链接。当您查看源代码时,错误是否与获取绝对url
无关。您似乎尝试调用了一个名为标记对象列表的函数或属性
,我很确定permalink不会引发异常谢谢。Pastylegs您想把它作为一个例子吗nswer所以我可以接受它?它最终是一个应该被标记的标记对象列表的导入再次感谢。重申一下,它最终是一个应该被标记对象列表的标记对象列表的导入
<div id="contentarea">
{% block content %}
{% for object in latest %}
<h2>{{ object.title }}</h2>
<p>Published on {{ object.pub_date|date:"F j, Y" }}</p>
{% if object.excerpt_html %}
{{ object.excerpt_html|safe }}
{% else %}
{{ object.body_html|truncatewords_html:"50"|safe }}
{% endif %}
<p><a href="{{ object.get_absolute_url }}">Read full entry</a></p>
<br>
{% endfor %}
{% endblock %}
</div>
def get_absolute_url(self):
return ('coltrane_entry_detail', (), { 'year': self.pub_date.strftime("%Y"),
'month': self.pub_date.strftime("%b").lower(),
'day': self.pub_date.strftime("%d"),
'slug': self.slug })
get_absolute_url = models.permalink(get_absolute_url)