簡體   English   中英

如何在django博客文章中添加圖像

[英]how to add an image in a django blog post

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

盡管當我嘗試執行此操作時,即使執行了manage.py sqlflush並重新同步了我的數據庫后,我仍然收到錯誤“沒有此類列blog_post.image”。

我有這種看法:

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.py syncdb之后添加了image 然后要么刪除數據庫,然后再次刪除syncdb(不推薦)。 或添加Django South進行數據遷移(首選)。

如何與南方合作? 在項目中添加了South之后。 首先刪除image字段,以使模型看起來與以前完全相同。 然后執行以下步驟:

  • python manage.py convert_to_south myapp.blog
  • python manage.py migration myapp.blog 0001-假

現在,將image字段添加回Post模型並執行以下步驟:

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

基於ImageField實例默認為varchar(100)列的基礎 ,您只需將名為image的varchar(100)列添加到APPNAME_post表中,就可以擺脫困境。

可以使用適當的GUI(例如:PostgreSQL的pgAdmin III)或通過命令行界面(例如:psql)使用類似於以下命令的命令來完成此操作:

ALTER TABLE APPNAME_post ADD COLUMN image varchar(100);

就我個人而言,我會接受亞米爾使用南方的建議。 設置它可能需要做更多的工作,但是對於將來的任何模式更改而言,它都是無價的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM