我有3张桌子。 User, Post, and Share.
Post
是一个包含所有帖子的表。 Post
与Share.
有一对多关系,Share
表是一个表,用于指示用户共享了哪些帖子。这是表格的结构:
class Post(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
status = models.CharField(max_length=200)
share_count = models.IntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True)
url = models.CharField(max_length=150)
class Share(models.Model):
post = models.ForeignKey(Post, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
shared_at = models.DateTimeField(auto_now_add=True)
比方说,我们有一个ID为1的用户。我要做的是按日期显示该用户的所有帖子+分享。就像您访问用户的Twitter个人资料时Twitter的行为一样。它显示了所有按日期和时间排序的推文和转发。我尝试做的是此查询:
Share.objects.all().select_related('post').get(user=1)
如果执行此操作,则会收到错误消息,指出该用户有多个共享。我究竟做错了什么? 错误:
Example.models.MultipleObjects返回:get()返回多个 分享-返回2!