この問題は、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'),
...
mysite.com/polls
views.pyにはコードがありません。
のテンプレートコード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 シェルから実行できます。 - 新しいポーリングは、次を使用して管理サイトで作成されると、シェル クライアントから読み取ることができます。
django.test.client.Client
- を使用してシェルから新しいポーリングを作成したとき
django.test.client.Client
、新しいポーリングはシェル クライアントまたは のいずれからも読み取ることができませんでしたが、サーバーの再起動前からmysite.com/polls
読み取ることができました。psql
mysite.com/admin