Template error:
В шаблоне D: \ virtualEnv \ выпускников \ член \ Templates \ член \ index.html, ошибка в строке 15Атрибут 'фотографии' не имеет никакого файла, связанного с ним
The 'photo' attribute has no file associated with it. 5 : <!-- Albums -->
6 : <div class="row">
7 : <div class="col-sm-12">
8 : <h3>{{ user.username }}'s Albums</h3>
9 : </div>
10 : {% if all_persons %}
11 : {% for person in all_persons %}
12 : <div class="col-sm-4 col-lg-2">
13 : <div class="thumbnail">
14 : <a href="{% url 'member:detail' person.id %}">
15 : <img src=" {{ person.photo.url }} " class="img-responsive">
16 : </a>
17 : <div class="caption">
18 : <h2>{{ person.name }}</h2>
19 : <h4>{{ person.category }}</h4>
20 :
21 : <!-- View Details -->
22 : <a href="{% url 'member:detail' person.id %}" class="btn btn-primary btn-sm" role="button">View Details</a>
23 :
24 :
25 :
Traceback:
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в _resolve_lookup 885. ток = ток [битном]
во время обработки вышеуказанного исключения (объективистские 'ImageFieldFile' т не subscriptable), произошло еще одно исключение:
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ \ Ядро обработчиков \ exception.py" во внутреннем 39. ответ = get_response (запрос)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ основные \ обработчики \ base.py" в _get_response 217. ответ = self.process_exception_by_middleware (е, запрос)
Файл «D: \ virtualEnv \ lib \ site-packages \ django \ core \ handlers \ base.py "in _get_response 215. response = response.render()
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ response.py" в визуализации 109. self.content = self.rendered_content
Файл «D: \ virtualEnv \ Lib \ сайт- пакеты \ Джанго \ шаблон \ response.py "в rendered_content 86. содержание = template.render (контекст, self._request)
Файл" D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ бэкэндов \ django.py»в визуализации 66. возвратный self.template.render (контекст)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в визуализации 208. вернуться self._render (контекст)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в _render 199. Возвращение self.nodelist.render (контекст)
Файл «D: \ virtualEnv \ lib \ site-packages \ django \ template \ base.py» в рендере 994. bit = node.render_annotated (контекст)
Файл «D: \ virtualEnv \ lib \ site-packages» \ django \ template \ base.py "в render_annotated 961. return self.render (контекст)
Файл: D: \ virtualEnv \ lib \ s ИТО-пакеты \ Джанго \ шаблон \ loader_tags.py "в визуализации 61. Результат = self.nodelist.render (контекст)
Файл" D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ база. ру»в визуализации 994. бит = node.render_annotated (контекст)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в render_annotated 961. возвратного self.render (контекст)
Файл «D: \ virtualEnv \ lib \ site-packages \ django \ template \ defaulttags.py» в рендере 323. вернуть ноделист.визуализации (контекст)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в визуализации 994. битную = node.render_annotated (контекст)
Файл «D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py "в render_annotated 961. возвращения self.render (контекст)
Файл" D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ defaulttags.py "в рендере 217. nodelist.append (node.render_annotated (context))
Файл" D: \ virtualEnv \ lib \ site-packages \ django \ template \ base.py "в render_annotated 961. return self.render (контекст)
Файл" D: \ virtualEnv \ lib \ site-packages \ django \ template \ base.py "в оказывать 1044. выход = self.filter_expression.resolve (контекст)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в решимостью 711. OBJ = self.var. решимость (контекст)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в решимостью 852. значение = self._resolve_lookup (контекст)
Файл "D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ шаблон \ base.py" в _resolve_lookup 893. ток = GetAttr (ток, бит)
Файл «D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ дб \ модели \ поля \ files.py "в _get_url 68. self._require_file()
Файл" D: \ virtualEnv \ Lib \ сайт-пакеты \ Джанго \ DB \ модели \ поля \ files.py "в _require_file 46. raise ValueError (" У атрибута% s "нет файла, связанного с ним."% self.field.name)
Тип исключения: ValueError at/ Исключительное значение: атрибут «фото» не имеет связанного с ним файла.
мои взгляды:
class IndexView(generic.ListView):
template_name = 'member/index.html'
context_object_name = 'all_persons'
def get_queryset(self):
return Person.objects.all()
class DetailView(generic.DetailView):
model = Person
template_name = 'member/detail.html'
class AlbumCreate(CreateView):
model = Person
fields = '__all__'
Мои модели являются:
class Person(models.Model):
name = models.CharField(max_length=128)
present_position=models.CharField(max_length=100)
organization= models.CharField(max_length=150,blank=True)
address = models.CharField(max_length=150, blank=True)
tele_land = models.CharField(max_length=15,blank=True)
tele_cell = models.CharField(max_length=15, blank=True)
email = models.EmailField(max_length=70, blank=True, null=True, unique=True)
photo= models.ImageField(upload_to='persons/%Y/%m/%d/',max_length=70, blank=True)
category = models.ForeignKey('Membership', on_delete=models.CASCADE)
def get_absolute_url(self):
return reverse('member:detail', kwargs={'pk': self.pk})
class Membership(models.Model):
category = models.CharField(max_length=50, blank=False)
Ursl:
from . import views
app_name = 'member'
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
url(r'member/add/$', views.AlbumCreate.as_view(), name='member-add'),
]
деталь шаблона:
<div class="col-sm-4 col-md-3">
<div class="panel panel-default">
<div class="panel-body">
<a href="{% url 'member:detail' person.id %}">
{% if member.photo %}
<img src="{{ member.photo.url }}" class="img-responsive">
{% else %}
<h3>No image to display</h3>
{% endif %}
</a>
<p>{{member.name}}</p>
<p>{{member.present_position}}</p>
<p>{{member.organization}}</p>
<p>{{member.address}}</p>
<p>{{member.tele_land}}</p>
<p>{{member.tele_cell}}</p>
<p>{{member.email}}</p>
</div>
</div>
</div>
URL-адреса проекта:
from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from member import urls as member_urls
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include(member_urls, namespace="member")),
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Почему поле фотографий дает эти ошибки?
Это не работает: >>> hasattr (а, 'URL') Traceback (самый последний вызов последнего): Файл "", строка 1, в Файл «/ главная/развернуть/бэкенд/.enviroment/Библиотека/python3.5/сайт-пакеты/Джанго/дб/модели/поля/files.py "строка 68, в _get_url self._require_file() Файл" /home/deploy/backend/.enviroment/ Библиотека/python3.5/сайт-пакеты/Джанго/дб/модель/поле/files.py», строка 46, в _require_file поднять ValueError ("The '% S' атрибут не имеет файла, связанный с ним." % себя. field.name) ValueError: атрибут 'avatar' не имеет связанного с ним файла. >>> –
alacret