在Django中的文章中添加图像的最佳方法

时间:2018-09-26 16:38:31

标签: django

在文章中任意位置添加带有标题的多个图像是一项非常典型的任务;在Django中这样做的最好方法是什么?

假设我有两个模型:

class Article(models.Model):
    heading = models.CharField(max_length=350)
    text = models.TextField()

class ImageModel(models.Model):
    image = models.ImageField( upload_to = 'static/images/', max_length=300)
    img_alt = models.CharField(max_length=550, blank = True)

现在,我想在文章中添加几个带有标题的图像。其文本以HTML格式存储:

<p>Paragraph 1</p>

[Image 1 + caption]

<p>Paragraph 2</p>

[Image 2 + caption]

<p>Paragraph 3.</p>

<...>

我应该怎么做才能做到这一点?我想有必要创建一个自定义标签,并借助JS制作一个用于在TextField中插入此标签的工具。插入时,必须以某种方式将ImageModel的所选实例的ID传递给标签。最后,在渲染模板时应处理此自定义标签。我对吗?有没有更简单,更直接的方法?

(我使用Django 2.0。)

1 个答案:

答案 0 :(得分:1)

最好对文章使用所见即所得编辑器,这样您也将拥有更好的文本格式。 Django-ckeditor就是其中一个,它为您提供了一个名为RichTextUploadingField的模型字段,您还可以找到更多的here