如何将多张图片插入一个博客post而不是文件字段上传(Django博客)
How to insert multiple images into a blog post not File field upload (Django blog)
我是 Django Web 开发的半菜鸟。我设法添加了一个文件字段,它实际上允许我将图像上传到 post(图像显示在 post-list 和 post-detail 中)但是如果我想在 post?
中添加多张图片
我目前正在编写教程 post,为了用户的利益,我想在每条指令下插入图片。我不希望教程是纯文本的,我该怎么做呢?
下面是我的models.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
这是我的 forms.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',)
这是我的博客 post 的屏幕截图,如您所见,当我包含 HTML 文件[=15= 时,它只是 posting link ]
My blog post
下面是 post 详细信息的片段;
{% 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"/>
<p class="post_text">{{ post.text|linebreaksbr }}</p>
</div>
<hr>
<a class="btn comment_button" href="{% url 'add_comment_to_post' pk=post.pk %}">Add comment</a>
<div>
{% 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 %}
这似乎是一项艰巨的任务,我正在努力在一些文本下插入一个简单的图像。有人可以帮忙吗?将不胜感激。
谢谢
山姆
您可以像 <img src="#">
一样在文本字段中手动添加图像 html。然后在模板中使用 "safe" 过滤器。所以post.text|safe
。这将呈现您的 html。
但这只能解决部分问题,因为您需要一种简单的方法来将图像上传到服务器并将它们插入到博客文章中。
您真正需要的是所见即所得的编辑器。这是一个列表 https://djangopackages.org/grids/g/wysiwyg/
Django-ckeditor 和 tinymce 都不错。您可以在各自的文档中找到有关如何设置它们的教程。
我是 Django Web 开发的半菜鸟。我设法添加了一个文件字段,它实际上允许我将图像上传到 post(图像显示在 post-list 和 post-detail 中)但是如果我想在 post?
中添加多张图片我目前正在编写教程 post,为了用户的利益,我想在每条指令下插入图片。我不希望教程是纯文本的,我该怎么做呢?
下面是我的models.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
这是我的 forms.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',)
这是我的博客 post 的屏幕截图,如您所见,当我包含 HTML 文件[=15= 时,它只是 posting link ]
My blog post
下面是 post 详细信息的片段;
{% 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"/>
<p class="post_text">{{ post.text|linebreaksbr }}</p>
</div>
<hr>
<a class="btn comment_button" href="{% url 'add_comment_to_post' pk=post.pk %}">Add comment</a>
<div>
{% 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 %}
这似乎是一项艰巨的任务,我正在努力在一些文本下插入一个简单的图像。有人可以帮忙吗?将不胜感激。
谢谢
山姆
您可以像 <img src="#">
一样在文本字段中手动添加图像 html。然后在模板中使用 "safe" 过滤器。所以post.text|safe
。这将呈现您的 html。
但这只能解决部分问题,因为您需要一种简单的方法来将图像上传到服务器并将它们插入到博客文章中。
您真正需要的是所见即所得的编辑器。这是一个列表 https://djangopackages.org/grids/g/wysiwyg/
Django-ckeditor 和 tinymce 都不错。您可以在各自的文档中找到有关如何设置它们的教程。