【问题标题】:Django Models Generic RelationsDjango 模型通用关系
【发布时间】:2016-09-22 08:48:16
【问题描述】:

我对 Django 中的通用关系感到困惑。

我有一个评论模型,我希望 Workflow 和 WorkflowItem 模型都能够有多个 cmets。

如果我这样做:

class Workflow(models.Model):
    comments = models.ManyToManyField(Comment)

class WorkflowItem(models.Model):
    comments = models.ManyToManyField(Comment)

那么我应该在评论类中添加什么来将评论链接到其中之一,或者我需要通用关系吗?

还说我想把属于工作流模型的成员,我做吗

class Workflow(models.Model):
    comments = models.ManyToManyField(Comment)
    members = models.ManyToManyField(Person)

还是别的什么?

【问题讨论】:

    标签: python django generics


    【解决方案1】:

    正如您提到的,您需要将评论链接回 Workflow/WorkflowItem,我相信您可以按如下方式构建模型

    class Workflow(models.Model):
        members M2M field
    
    class WorkflowItem(models.Model):
        fields
    
    class Comment(models.Model):
        name_of_your_generic_fk(Can be either Workflow/WorkflowItem or any content type for that matter)
        fields
    

    使用这样的模型结构,您可以从评论中追踪它是否是在 Workflow/WorkflowItem 上创建的。

    如果您多加思考,显然可以设计出更好的解决方案!! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 2011-11-16
      • 2019-04-22
      相关资源
      最近更新 更多