Здравствуйте, уважаемые форумчане. Я сейчас на начальной стадии в изучении Django. Делаю по одному интернет - учебнику блог. И вроде бы все хорошо и понятно - посты создаются, редактируются и удаляются. Есть возможность добавлять к посту изображение . Проблема только в том, что могу добавить только одно изображение. Каждый раз когда я загружаю новое, изображение в посте меняется, а мне надо, чтобы новые изображения добавлялись к уже существующим.
привожу свой код:
settings:
- settings:
STATIC_URL = '/static/
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
-
models:
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
picture = models.ImageField(upload_to='images', blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def str(self):
return self.title
-
views:
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
def post_new(request):
if request.method == "POST":
form = PostForm(request.POST, request.FILES,)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect('blog.views.post_detail', pk=post.pk)
else:
form = PostForm()
return render(request, 'blog/post_edit.html', {'form': form})
def post_edit(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
form = PostForm(request.POST, request.FILES, instance=post)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect('blog.views.post_detail', pk=post.pk)
else:
form = PostForm(instance=post)
return render(request, 'blog/post_edit.html', {'form': form})
def post_delete(request, pk):
post = get_object_or_404(Post, pk=pk)
post.delete()
return redirect('blog.views.post_list')
-
post_edit.html:
{% extends 'blog/base.html' %}
{% block content %}
<div class="post">
{% if post.published_date %}
<div class="date">
{{ post.published_date }}
</div>
{% endif %}
{% if user.is_authenticated %}
<a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}">
<span class="glyphicon glyphicon-pencil"></span>
</a>
<a class="btn btn-default" href="{% url 'post_delete' pk=post.pk %}">
<span class="glyphicon glyphicon-remove"></span>
</a>
{% endif %}
<h1>{{ post.title }}</h1>
<p>{{ post.text|linebreaksbr }}</p>
{% if post.picture %}
<img src="{{ post.picture.url }}" height = "400px"/>
{% endif %}
</div>
{% endblock %}
Updated 25 Jan. 2017, 6:38 by DimDimich.