Я начинаю Django1.10. Я только начал играть с ним. Я пытаюсь показать изображение на веб-сайте.python Django повтор url много раз
Это MyProject/settings.py:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
и MyProject/urls.py
from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^poster/', include('poster.urls')),
url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
MyProject/приложение/views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import Info
# give a set of summary of items
def index(request):
latest_item_list = Info.objects.all()
context = {'latest_item_list': latest_item_list}
return render(request, 'poster/index.html', context)
def detail(request, item_id):
return HttpResponse("This function will return detail info for items %s" % item_id)
MyProject/приложение/models.py
from django.db import models
class Info(models.Model):
def __str__(self):
return self.info_text
info_text = models.CharField(max_length=50)
pub_date = models.DateTimeField('date published')
info_image = models.ImageField(upload_to='images/%Y%m/%d')
MyProject/приложение/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
# ex:/poster
url(r'^$', views.index, name='index'),
# ex: /poster/5
url(r'^(?P<item_id>[0-9]+)/$', views.detail, name = 'detail'),
]
MyProject/приложение/шаблоны/приложение/index.html
{% if latest_item_list %}
<ul>
{% for item in latest_item_list %}
{{forloop.counter}}.<a href="{{ item.info_image.url }}/">{{ item.info_text }}</a>
{% endfor %}
</ul>
{% else %}
<p>No poster are available.</p>
{% endif %}
Если я бегу питона manage.py runserver и иди http://127.0.0.1:8000/poster/. Я вижу один объект, который я создал ранее, когда я нажимаю его, URL указывает, что он повторяется много раз
Я считаю, что в url.py есть что-то не так, но я не уверен. Может кто-нибудь помочь?
HTML отлично работает, я попробовал вручную ввести значение item.info_image.url. Пока он ударяет по этому URL-адресу, URL-адрес начинает повторяться. –
Можете ли вы опубликовать URL-адрес, который у вас есть в HTML? –
Если я посмотрю ваш комментарий в urls.py, он говорит: '# ex:/poster/5 url (r '^ (? P [0-9] +)/$', views.detail, name = 'detail'), ' , чтобы достичь того, что в комментарии должно было бы выглядеть (обратите внимание на/infront) ' url (r '^/(? P [0-9] +)/$', views .detail, name = 'detail'), ' Хотя из URL-адреса вам кажется, что ваш URL-адрес нуждается в чем-то вроде ' url (r '^/images/$', views.detail, name = 'detail'), ' чтобы иметь возможность связывать изображения. Хотя я бы порекомендовал вам хранить изображения с идентификатором типа в модели, поэтому вы можете использовать '{% url 'detail' question.id%}' нотацию для создания URL-адресов. –