对于我的第一个Django应用程序,我正在尝试编写一个简单的引用集合网站(想想bash.org),功能非常简单,只是为了让我的脚湿透。我使用sqlite作为我的数据库,因为它是最容易设置的。
这是我现在唯一的模特:
class Quote(models.Model):
text = models.TextField();
upvotes = models.IntegerField(default=0)
downvotes = models.IntegerField(default=0)
active = models.BooleanField(default=False)
date_published = models.DateTimeField(auto_now_add=True)
一个非常简单的细节模板,只是为了转储信息:
Quote: {{ quote.text }}<br>
Upvotes: {{ quote.upvotes }}<br>
Downvotes: {{ quote.downvotes }}<br>
Published: {{ qoute.date_published|date:"F j, Y, g:i a" }}
当我转到详细页面时,除日期时间(空白)外,正确输出给定对象的所有内容。但是,我检查了数据库并验证了该对象列中存储的日期时间,并显示了精细的管理区域。此外,当我从manage.py运行shell时,这是我得到的:
>>> q = Quote.objects.all()[0]
>>> q.date_published
datetime.datetime(2009, 7, 24, 23, 1, 7, 858688)
另外,我使用通用视图django.views.generic.list_detail.object_detail
来处理请求,但我也尝试使用下面的视图并得到相同的结果。
def detail(Request, id):
q = get_object_or_404(Quote, pk=id)
return render_to_response('quotable/quote_detail.html', {'quote': q})
在尝试显示日期时,我做错了什么,或者是否有其他事情发生在这里?
感谢。
答案 0 :(得分:2)
正如Adam Bernier所提到的那样,你正在拼错quote
答案 1 :(得分:0)
我不确定您使用date:
过滤器做了什么 - 如果用简单的内容替换它会发生什么,例如date:"D d M Y
?
答案 2 :(得分:0)
我相信django.views.generic.list_detail.object_detail uses a variable named object_id, not id。
urlpatterns = patterns('',
(r'^$', 'django.views.generic.list_detail.object_list', info_dict),
(r'^(?P<object_id>\d+)/$', 'django.views.generic.list_detail.object_detail', info_dict),
url(r'^(?P<object_id>\d+)/results/$', 'django.views.generic.list_detail.object_detail', dict(info_dict, template_name='polls/results.html'), 'poll_results'),
(r'^(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'),
)
当您更改为使用详细信息模板时,您的网址格式将会出错。