【问题标题】:How can a django model field relate to multiple model?django 模型字段如何与多个模型相关联?
【发布时间】:2012-12-24 11:57:41
【问题描述】:

假设我有三个这样的模型:

 class video(models.Model):
       name=models.CharField(max_length = 100)

 class image(models.Model):
       name=models.CharField(max_length = 100)

 class comments(models.Model):
       content=models.CharField(max_length = 100)

现在我想在用户的视频或图像获得评论时通知用户

这就是我想要的

消息模型:

class message(models.Model):
       type=models.CharField(max_length = 100) # 'video' or 'image'
       video_or_image=models.ForeignKey(video or image)

       #the type is just a string to tell if the comment is about the video or image
       #video_or_image need to be video foreignkey or image foreignkey depends on type

有可能吗。

我目前通过两种方法解决这个问题

第一

   class message(models.Model):
       type = models.CharField(max_length = 100) # 'video' or 'image'
       video_or_image_id = models.IntegerField(default = 1)
       # 

  class message(models.Model):
       type=models.CharField(max_length = 100) # 'video' or 'image'
       video=models.ForeignKey(video)
       image=models.ForeignKey(image)
       # if the comment is about video just leave the image empty

如果一个字段到多个模型无法完成,那么我的解决方法哪个更好,或者帮助我更好的方法!

【问题讨论】:

    标签: python django model meta


    【解决方案1】:

    您正在寻找GenericForeignKey

    这也是contrib.comments 关联comments to commented 项目的方式。

    【讨论】:

      猜你喜欢
      • 2014-12-14
      • 1970-01-01
      • 2022-10-16
      • 2010-10-15
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      相关资源
      最近更新 更多