在下面的代碼中,我有一個帖子,喜歡,評論模型。當我嘗試遷移模型以激活它時,我收到了反向訪問器錯誤。對于點贊,user_that_liked 只點贊一次,而 user_liked_to 可以有多次點贊。對于評論, user_that_commented 和 user_commented_to 都可以有很多評論。我應該如何設定我的模型,以便我可以對模型做我想做的事情,同時也解決這個問題。如果您需要更多資訊,請告訴我。
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post_question = models.CharField(max_length=200)
pub_date = models.DateTimeField()
class Likes(models.Model):
user_that_liked = models.ForeignKey(User, on_delete=models.CASCADE)
user_liked_to = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
date = models.DateTimeField()
like_or_dislike = models.IntegerField(default=0)
class Comment(models.Model):
user_that_commented = models.ForeignKey(User, on_delete=models.CASCADE)
user_commented_to = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE)
date = models.DateTimeField()
comment = models.CharField(max_length=300)
uj5u.com熱心網友回復:
您需要指定相關名稱以區分關系
class Post(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
post_question = models.CharField(max_length=200)
pub_date = models.DateTimeField()
class Likes(models.Model):
user_that_liked = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_that_liked')
user_liked_to = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_liked_to')
post = models.ForeignKey(Post, on_delete=models.CASCADE)
date = models.DateTimeField()
like_or_dislike = models.IntegerField(default=0)
class Comment(models.Model):
user_that_commented = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_that_commented')
user_commented_to = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_commented_to')
post = models.ForeignKey(Post, on_delete=models.CASCADE)
date = models.DateTimeField()
comment = models.CharField(max_length=300)
然而,攜帶這些用戶關系感覺有點多余,因為Likes只能擁有user_that_liked并且user_liked_to可以從喜歡的物件中派生出來。(評論相同)
那么 - 可以通過找到“喜歡”的like.post.user用戶和喜歡的用戶like.user_that_liked
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/470240.html
下一篇:如何在類中的變數上轉換字串?
