Проблема с новостями при работе в Django
Пишу свой сайт на Django и есть проблема с новостями. Ссылка не работает, при переходе по ссылке выходит ошибка.
Код из views.py:
def for_posts(request):
if request.method == "POST":
form = Blog()
form.post_id = request.POST.get('id')
form.title = request.POST.get('title')
form.file = request.POST.get('image')
form.description = request.POST.get('description')
form.date = request.POST.get('date')
form.user = request.POST.get('user')
form.save()
return redirect('blog')
return render(request, 'main/addpost.html')
def blog_id(request, id : int):
id_setting = get_object_or_404(Blog, id = id)
return render(request, 'main/blog_id.html', {'id_setting': id_setting, 'id': id, 'blog': Blog.objects.all()})
Из models.py:
class Blog(models.Model):
title = models.CharField("Заголовок", max_length=120, null=True)
image = models.ImageField("Изображение", upload_to='users/%Y/%m/%d', blank=True, null=True)
description = models.CharField("Описание", max_length=350, null=True)
date = models.DateField("Дата публикации", null=True)
user = models.CharField("Опубликовал", max_length=21, null=True)
@property
def image_url(self):
if self.image and hasattr(self.image, 'url'):
return self.image.url
def __str__(self):
return f'{self.title} {self.image} {self.description} {self.date} {self.user}'
class Meta():
verbose_name = 'Весть'
verbose_name_plural = 'Вести'
Из blog_id.html:
<div class="publication">
<h1 align="center" style="margin-top: 80px;">Блог</h1>
<img src="{{ i.image }}" alt="изображение" class="render_img"><br>
<font size="6">{{ i.title }}</h2></font><br>
<span class="desc"><font color="gray">{{ i.description }}</font></span><br>
<span class="date">Дата и время: {{ i.date }}</span><br>
<span class="user">Опубликовал: {{ i.user }}</span><br>
<a href="{% url 'blog_id' i.id %}">Прочитать далее</a>
</div>
P.S. используемая переменная i является частью цикла for, подробнее смотрите в blog.html.
Из addpost.html:
<div id="add_post">
<h1 align="center" style="margin-top: 80px;">Добавить запись</h1>
<ul class="elements">
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
</ul>
</div>
<form method="post" class="add_form">
{% csrf_token %}
<input name="title" type="text" placeholder="Заголовок" class="form-control bg-dark">
<input name="image" type="file" class="form-control bg-dark">
<textarea name="description" id="" cols="30" rows="2" class="form-control bg-dark" placeholder="Описание"></textarea>
<input name="date" type="date" class="form-control bg-dark" placeholder="Дата">
<input name="user" type="text" placeholder="Автор" class="form-control bg-dark">
<input type="submit" value="Отправить">
</form>
И наконец из blog.html:
<div class="container-fluid">
<div class="row">
<div id="blog">
<ul class="elements">
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
<li class="square"></li>
</ul>
<h1 align="center" style="margin-top: 80px;">Блог</h1>
{% for i in blog %}
<div class="publication">
<img src="{{ i.image }}" alt="изображение" class="render_img"><br>
<font size="6">{{ i.title }}</h2></font><br>
<span class="desc"><font color="gray">{{ i.description }}</font></span><br>
<span class="date">Дата и время: {{ i.date }}</span><br>
<span class="user">Опубликовал: {{ i.user }}</span><br>
<a href="{% url 'blog_id' i.id %}">Прочитать далее</a>
{% empty %}
<samp>Новостей пока нет)</samp>
</div>
{% endfor %}
</div>
</div>
</div>
li.square - часть анимации заднего фона.
P.S. заранее спасибо)
