我正在學習Django,目前我在繼續教程Polls的教程中。在模板中使用Django 1.5中的通用視圖添加url參數
現在我想轉換成通用的觀點,這是在那裏我遇到了問題:
新聞/ models.py
[...]
class News(models.Model):
id = models.IntegerField(primary_key=True, editable=False)
category = models.CharField(max_length=50L)
title = models.CharField(max_length=200L)
#rss_summary = models.CharField(max_length=2000L)
rss_summary = models.TextField(max_length=2000L)
#body_text = models.CharField(max_length=5000L)
body_text = models.TextField(max_length=5000L)
post_date = models.DateTimeField()
class Meta:
db_table = 'news'
def __unicode__(self):
return self.title
新聞/ urls.py
from django.conf.urls import patterns, url, include
from django.views.generic import DetailView, ListView
from news import views
from news.models import News
urlpatterns = patterns('',
url(r'^$',
ListView.as_view(
queryset=News.objects.order_by('-post_date'),
context_object_name='allnews',
template_name='news/news.html'),
name='news_index'),
[...]
新聞/模板/新聞/ news.html現在
[...]
{% for item in allnews %}
<h1 class="news"><a href="{% url 'news_index' item.id %}">{{item.title}}</a></h1>
[...]
{% endfor %}
我的問題:我想用使用通用享有{% url 'foo' id %}
語法鏈接到一個特定的新聞項目(通過ID),如的ListView或的DetailView。我怎樣才能做到這一點?我爲ListView聲明瞭一個名稱,但我無法弄清楚如何指定allnews.id
。
有了上面的代碼,我得到的錯誤
NoReverseMatch在/新聞/反向與參數 'news_index' '(7L)' 和關鍵字參數 '{}' 未找到。
有趣的是,「7L」的最新消息是項目的ID ...
這完全覆蓋並解決了我的問題。非常感謝! – weeheavy 2013-03-18 21:30:06