python - 如何在 django 博客文章中添加图像

标签 python html django blogs web-frameworks

我正在使用 django 创建一个博客,我试图弄清楚的最后一件事是如何在我的博客上发布图像。我已经可以通过我的管理面板很好地发布一些文本,我现在想要的是能够向帖子添加图像。我是一个完全的新手,所以请原谅任何基本的错误。

我想到了这样的模型:

class Post(models.Model):
    title = models.CharField(max_length=255)
    slug = models.SlugField(unique=True, max_length=255)
    description = models.CharField(max_length=255)
    content = models.TextField()
    published = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    image = models.ImageField(upload_to='media')

    class Meta:
        ordering = ['-created']

    def __str__(self):
        return ('%s') % self.title

    def get_absolute_url(self):
        return reverse('blog.views.post', args=[self.slug])

尽管当我尝试这样做时,我收到错误“没有这样的列 blog_post.image”,即使在执行了 manage.py sqlflush 并重新同步我的数据库之后也是如此。

我有这样的观点:

def index(request):
    posts = Post.objects.filter(published=True)
    return render(request, 'blog/index.html', {'posts': posts})

基本上,我想要将图像添加到帖子中的选项以及用于显示它的模板。

我尝试过管理文件和各种其他应用程序,并尝试了其他人网站上的许多代码片段,但没有任何效果,所以这并不是因为缺乏尝试。最接近我想要的可以在这里找到:http://drumcoder.co.uk/blog/2010/may/12/django-blog-images/ (这对我来说也不起作用),只是我希望它成为我的 Post 模型的一部分。

有没有简单的方法可以做到这一点?模型和模板必须是什么样子?任何帮助将不胜感激,谢谢。

最佳答案

假设您在完成./manage.pysyncdb后添加了image。然后再次删除数据库和syncdb(不推荐)。或添加Django South用于数据迁移(首选)。

如何与南合作?当您在项目中添加南时。首先删除 image 字段,以便您的模型看起来与以前完全相同。然后执行以下步骤:

  • python Manage.py Convert_to_south myapp.blog
  • python manage.py migrate myapp.blog 0001 --fake

现在将 image 字段添加回您的 Post 模型并执行以下步骤:

  • python manage.py schemamigration myapp.blog --auto
  • python manage.py 迁移 myapp.blog

关于python - 如何在 django 博客文章中添加图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388422/

相关文章:

python - 从 mysql 中检索泰米尔字符时出现问题

html - 本地主机风格不同于服务器风格

javascript - 如何仅在页面加载时在 <body> 的特定 div 中显示加载程序

javascript - 将文本字段中的文本添加到 JavaScript 中的选择框中?

python - 使用 Django 单元测试的数据库权限

python - ctypes:提取 C 库返回的结构成员

python - 在 Django 中自定义 TabularInline

python - 如何在Python中连接2个查询

python - Docker与Django一起编写: 'ascii'编解码器无法解码位置7的字节0xcd:序数不在范围内(128)

python - Django 模板——嵌套包含在循环中