2017-04-20 80 views
0

我有兩個模型,如:在Django中是否存在某種反向外鍵關係?

class Task(models.Model): 
    ... 

class MilageReceipt(models.Model): 
    ... 

每個收據應該列出了很多任務。這可以通過任務模型上的ForeignKeyField(「MilageReceipt」)快速完成。但收據生成的時間要晚得多,因爲我想在創建時選擇任務,所以我希望將收據鏈接指向它列出的任務,而不是相反。我可以在這裏使用ManyToMany關係,但是之後我需要驗證任何時候沒有任何任務已經結算兩次。用一個單詞我需要一個ManyToOneRelation。

我確定這是一個常見問題。什麼是解決這個問題最直接的方法?我特別想避免不得不大量修改管理員。

對不起,我敢肯定還有其他類似的問題,但我沒有找到一個好的解決方案。

回答

0

嘗試像

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.comments把所有的意見。

+0

這個'ForeignKey'可以工作,但除非絕對必要,否則我不會覆蓋'Post'模型中的'id'字段。 – jape