在文章中任意位置添加带有标题的多个图像是一项非常典型的任务;在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。)
答案 0 :(得分:1)
最好对文章使用所见即所得编辑器,这样您也将拥有更好的文本格式。 Django-ckeditor就是其中一个,它为您提供了一个名为RichTextUploadingField
的模型字段,您还可以找到更多的here。