在做 Django 教程时会注意到这个问题。
- 在管理站点上成功进行投票,然后在管理站点上显示该选项:
转到
mysite.com/polls
并且投票不存在:“没有可用的投票。”我可以要么 要么
apachectl restart
得到touch mysite/wsgi.py
相同的结果,即新行然后正确显示在mysite.com/polls
mysite.com/polls
为什么在不重新启动服务器的情况下,在管理站点上创建新行后不会立即显示?
来自 urls.py 的相关代码:
from django.conf.urls import patterns, url
from django.views.generic import DetailView, ListView
from django.utils import timezone
from polls.models import Poll
urlpatterns = patterns('',
url(r'^$',
ListView.as_view(
queryset=Poll.objects.filter(pub_date__lte=timezone.now) \
.order_by('-pub_date')[:5],
context_object_name='latest_poll_list',
template_name='polls/index.html'),
name='index'),
...
views.py中没有代码mysite.com/polls
。
模板代码为mysite.com/polls
{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li>
<a href="{% url 'polls:detail' poll.id %}">{{ poll.question }}</a>
</li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
使用:
- 姜戈 1.5
- 蟒蛇 3.3.0-3
- mod_wsgi 3.4-2
- PostgreSQL 9.2.3-1
- 阿帕奇 2.2.24-1
- linux 3.8.4-1
额外说明:
- Django (1.5) 开发服务器上的相同行为
- 当我在 python 2.7 和 MySQL 下做 Django (1.5) 教程时,以前没有出现相同的行为
- 在管理站点创建后,这些行可以
SELECT
从 postgresql shell - 当在管理站点上使用
django.test.client.Client
- 当我使用 shell 从 shell 进行
django.test.client.Client
新轮询时,新轮询无法从 shell 客户端或 onmysite.com/polls
读取,但是在服务器重新启动之前psql
和之前都可以读取。mysite.com/admin