Как вставить несколько изображений в запись блога, а не загружать поле файла (блог Django)

Я полуновичок в веб-разработке Django. Мне удалось добавить поле «Файл», которое фактически позволяет мне загружать изображение в сообщение (изображение отображается в списке сообщений и деталях сообщения), но что, если я хочу добавить несколько изображений в сообщение?

В настоящее время я пишу обучающий пост и хотел бы вставить изображения под каждой инструкцией для удобства пользователя. Я не хочу, чтобы учебники были чисто текстовыми, как мне это сделать?

Ниже мои модели.py

from __future__ import unicode_literals
from django.db import models
from django.core.urlresolvers import reverse
from django.utils import timezone
#from taggit.managers import TaggableManager


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)
    image = models.FileField(null=True, blank=True)

    #tags = TaggableManager()

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

    def approved_comments(self):
        return self.comments.filter(approved_comment=True)

    class Meta:
        ordering = ["-pk"]

class Comment(models.Model):
    post = models.ForeignKey('blog.Post', related_name='comments')
    author = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(default=timezone.now)
    approved_comment = models.BooleanField(default=False)

    def approve(self):
        self.approved_comment = True
        self.save()

    def approved_comments(self):
        return self.comments.filter(approved_comment=True)

    def __str__(self):
        return self.text

А вот мои формы.py

from django import forms
from .models import Post, Comment

class PostForm(forms.ModelForm):

class Meta:
    model = Post
    fields = ('image','title', 'text')

class CommentForm(forms.ModelForm):

    class Meta:
        model = Comment
        fields = ('author', 'text',)

Вот снимок экрана моего сообщения в блоге, как вы можете видеть, он просто публикует ссылку, когда я включаю файл HTML.

Моя запись в блоге

И, наконец, ниже фрагмент поста;

{% extends 'blog/base.html' %}

{% block content %}
 

		{% if user.is_authenticated %}
     		<a class="btn btn-default pull-left" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"></span></a>
		{% endif %}

		<div id="post_det">
			{% if post.published_date %}
				<div class="date">
					{{ post.published_date }}
				</div>
			{% endif %}

			<h1 class="post-title">{{ post.title }}</h1>
				<img src="{{post.image.url}}" class="img-responsive blog-img"/>
				&nbsp; 
				
			<p class="post_text">{{ post.text|linebreaksbr }}</p>
			
			
		</div>
	&nbsp; 
	
	<hr>
		<a class="btn comment_button" href="{% url 'add_comment_to_post' pk=post.pk %}">Add comment</a>
		
	
	<div>
	&nbsp;  
	
		{% for comment in post.comments.all %}
		{% if user.is_authenticated or comment.approved_comment %}
			<div class="comment">
			<div class="date">
            {{ comment.created_date }}
            {% if not comment.approved_comment %}
                <a class="btn btn-default" href="{% url 'comment_remove' pk=comment.pk %}"><span class="glyphicon glyphicon-remove"></span></a>
                <a class="btn btn-default" href="{% url 'comment_approve' pk=comment.pk %}"><span class="glyphicon glyphicon-ok"></span></a>
            {% endif %}
			</div>
			<strong>{{ comment.author }}</strong>
			<p>{{ comment.text|linebreaks }}</p>
			</div>
		{% endif %}
			{% empty %}
				<p>No comments here yet :(</p>
			{% endfor %}
	</div>
{% endblock %}

Это кажется такой черной задачей, и я изо всех сил пытаюсь вставить простое изображение под текст. Кто-нибудь может помочь? Будет очень признателен.

Спасибо

Сэм


person Curly77    schedule 11.10.2017    source источник
comment
Итак, ваша проблема в том, что вы хотите добавить несколько изображений? или что изображение не отображается правильно?   -  person alfonso.kim    schedule 11.10.2017
comment
@alfonso.kim Я хочу вставить несколько изображений в запись блога. Прямо сейчас я знаю только, как загрузить один и сделать так, чтобы он отображался вверху сообщения, как видно из моего фрагмента описания сообщения ‹img src={{post.image.url}} class=img-responsive blog-img /› Нужно ли редактировать файл models.py? Спасибо   -  person Curly77    schedule 11.10.2017


Ответы (1)


Вы можете добавить изображения вручную в текстовое поле как html, например <img src="#">. Затем в шаблоне используйте «безопасный» фильтр. Итак, post.text|safe. Это отобразит ваш html.

Но это решает только часть вашей проблемы, потому что вам нужен простой способ загрузки изображений на сервер и вставки их в сообщения блога.

Что вам действительно нужно, так это редактор WYSIWYG. Вот список https://djangopackages.org/grids/g/wysiwyg/.

Django-ckeditor и tinymce довольно хороши. Вы можете найти руководства по их настройке в соответствующих документах.

person chasmani    schedule 11.10.2017
comment
Приятно слышать, что мой ответ помог Curly77, не могли бы вы проголосовать за меня и отметить ответ как решение вашей проблемы? - person chasmani; 18.10.2017
comment
Я отметил ответ и проголосовал, вы не можете видеть голосование, так как я новичок в stackoverflow. Спасибо еще раз! - person Curly77; 20.10.2017