Я новичок в Django, поэтому, пожалуйста, прости меня, если это окажется очевидным.
Я работал над учебниками, поэтому у меня есть проект (я назвал его «trydj»), в котором есть приложение под названием «опросы». То, что я хочу сделать, это иметь опросы в корне, то есть:
http://www.example.com/
вызовет представление индекса опросов и
http://www.example.com/details/
вызовет представление подробностей опросов.
Что я не хочу (но в настоящее время имею):
http://www.example.com/polls
и
http://www.example.com/polls/details/
Я также хотел бы сохранить возможность предоставления другим приложениям других под-URL, таких как admin или другие приложения, которые я мог бы создать, например:
http://www.example.com/admin/
или
http://www.example.com/anotherapp/
У меня есть все так же, как это было в конце урока, с settings.py, manage.py и т. Д. На уровне проекта и urls.py как в trydj, так и в polls.
url.py в trydj имеет следующие urlpatterns:
urlpatterns = patterns('',
# Uncomment the admin/doc line below to enable admin documentation:
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)
и urls.py в опросах имеет следующие urlpatterns:
urlpatterns = patterns('',
url(r'^$',
ListView.as_view(
queryset=Poll.objects.order_by('-pub_date')[:5],
template_name='polls/index.html'
)
),
url(r'^(?P<pk>\d+)/$',
DetailView.as_view(
model=Poll,
template_name='polls/detail.html'
)
),
url(r'^(?P<pk>\d+)/results/$',
DetailView.as_view(
model=Poll,
template_name='polls/results.html'
),
name='poll_results'
),
url(r'^(?P<pk>\d+)/vote/$', 'polls.views.vote'),
)
Конфигурация apache, которую я создал на основе документации django:
WSGIScriptAlias / /var/django/trydj/wsgi.py
WSGIPythonPath /var/django
<Directory /var/django/trydj>
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
Мой wsgi.py, опять же на основе документации django:
import os
import sys
sys.path.append('/var/django/trydj')
os.environ['PYTHON_EGG_CACHE'] = '/var/django/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Я пытался изменить соответствующее регулярное выражение url в trydj.urls различными способами. Значение r'^'
в некотором роде помогло, но тогда приложение не смогло найти свои файлы шаблонов, даже если я переместил их из каталога опросов в корень папки шаблонов.
Как всегда, любая помощь очень ценится.