需要在django的一篇文章中添加图像和文本

时间:2014-07-17 13:02:46

标签: python django

我有两个不同的帖子和图像类,但我需要在一个类中,所以我可以在添加post时从管理站点添加与帖子相关的图像。我需要在旁边显示图像标题

class Post(models.Model):
    title = models.CharField(max_length=140)
    body = models.TextField()
    date = models.DateTimeField()



    def __unicode__(self):
        return self.title


class Image(models.Model):
    image = models.ImageField(upload_to='%Y/%m/%d') 

2 个答案:

答案 0 :(得分:0)

您可以使用OneToOne关系

class Image(models.Model):
    image = models.ImageField(upload_to='%Y/%m/%d') 


class Post(models.Model):
    title = models.CharField(max_length=140)
    body = models.TextField()
    date = models.DateTimeField()
    post_image = models.OneToOneField(Image)



    def __unicode__(self):
        return self.title

答案 1 :(得分:0)

您是否更新了数据库?您的post_image_id表格中应该有一个blog_post。 (与你有关,没有这样的列错误)。请注意,如果您运行Django 1.6或更低版本,./manage.py syncdb将不会更新您的数据库表。您应该使用South ore手动更新数据库。

如果您修复了无列错误,则可以将图像添加到帖子中。 (见拉法达的例子)

如果您想拥有m2m关系并将多个图片添加到帖子中。

image_a = Image()
image_b = Image()
blog = Blog().save() # You must save a blog before adding images in a m2m relation.
blog.images.add(image_a)
blog.images.add(image_b)

blog = Blog().save()

for image in images:
  blog.images.add(image)

blog.save()