我正在使用 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/