返回所有用户帖子和收藏夹? Django的

时间:2017-04-19 11:39:23

标签: django

我正在创建用户喜欢的所有帖子的摘要页面以及用户创建的所有帖子。

我的数据库中有两个模型:Aircraft& Airline。用户可以将帖子上传到他们喜欢的任一模型。我对如何检索他们的帖子感到有点无能为力?

飞机模型

class Aircraft(AircraftModelBase):
    manufacturer = SortableForeignKey(Manufacturer)
    aircraft_type = SortableForeignKey(AircraftType)
    body = SortableForeignKey(Body)
    engines = models.PositiveSmallIntegerField(default=1)

航空公司型号

class Airline(AirlineModelBase):
    fleet_size = models.PositiveSmallIntegerField()
    alliance = models.CharField(max_length=100, null=True)
    average_fleet_age = models.PositiveSmallIntegerField()

在我的帐户应用中,我制作了以下模型:

class FavoritedAircraft(models.Model):
  user = models.ForeignKey(User)
  aircraft = models.ForeignKey(Aircraft)

  def __str__(self):
    return self.aircraft.name


class FavoritedAirline(models.Model):
  user = models.ForeignKey(User)
  airline = models.ForeignKey(Aircraft)

  def __str__(self):
    return self.airline.name

如何回复用户最喜欢的帖子,如果用户上传了任何内容,那么这些帖子也是如此?

感谢您的帮助!

修改

class UploadedAircraft(models.Model):
  user = models.ForeignKey(User)
  aircraft = models.ForeignKey(Aircraft)

  def __str__(self):
    return self.aircraft.name

1 个答案:

答案 0 :(得分:0)

您可以使用FavoritedAirline.objects.filter(user=<the_user_here>)之类的内容查询受欢迎的类别,它将返回一个可迭代的查询集。

但是,在判断您发布的AircraftAirline模型的实现时,您没有创建帖子的字段引用(除非它在您的基类中定义)。如果您将其作为外键添加,就像在FavoritedAirline模型中一样,您可以使用与上面相同的查询。