【问题标题】:Is there some kind of reverse Foreign Key relationship in Django?Django中是否存在某种反向外键关系?
【发布时间】:2017-09-16 10:25:44
【问题描述】:

我有两个模型,例如:

class Task(models.Model):
  ...

class MilageReceipt(models.Model):
  ...

每张收据都应该列出很多任务。这可以通过 Task 模型上的 ForeignKeyField("MilageReceipt") 快速完成。但是收据是在很久以后才生成的,因为我想在创建它时选择任务,所以我希望将收据链接到它列出的任务,而不是反过来。我可以在这里使用多对多关系,但是我需要一直验证没有任务被两次计费。总之,我需要一个 ManyToOneRelation。

我确定这是一个常见问题。解决这个问题最直接的方法是什么?我特别想避免大量修改管理员。

抱歉,我确定还有其他类似的问题,但我没有找到好的解决方案。

【问题讨论】:

    标签: django database many-to-many one-to-many many-to-one


    【解决方案1】:

    试试类似的东西

    class Post(models.Model):
        id=models.CharField(primary_key=True, default=uuid.uuid4,max_length=100)
    
    class Comment(models.Model):
        comment = models.TextField()
        post = models.ForeignKey(Post,on_delete=models.CASCADE,related_name='comments')
    

    在这种情况下,您可以使用 post.cmets 获取所有 cmets。

    【讨论】:

    • 这个ForeignKey 可以工作,但除非绝对必要,否则我不会覆盖Post 模型中的id 字段。
    猜你喜欢
    • 2020-02-12
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多