django - Django跨越关系

标签 django django-orm

我已经阅读了文档,但仍然出现错误。我有用户下达目录对象的订单。我想创建一个查询,该查询返回具有包含特定目录项的订单的所有用户。

这是我的模型:

class Catalog(models.Model):
  name = models.CharField(max_length=100)
  price = models.IntegerField()

  def __unicode__(self):
      return self.name

class Annual(models.Model):
  catalog = models.OneToOneField(Catalog, blank=True, null=True, related_name='annual_products')
  year_id = models.IntegerField(max_length=4)
  start_date = models.CharField(max_length=10)
  end_date = models.CharField(max_length=10)
  date = models.DateTimeField(auto_now_add=True, blank=True)
  def __unicode__(self):
      return unicode(self.year_id)

class Order(models.Model):
  user = models.ForeignKey(User, related_name='who_ordered')
  select = models.ManyToManyField(Catalog, related_name='annuals_ordered', blank=True, null=True)

  def __unicode__(self):
      return unicode(self.user)

这是我一直在尝试的查询:
 Catalog.objects.filter(order__select__annual='2014')

最佳答案

如果需要用户,则应从用户开始。另外,您需要过滤“年度”中的特定字段,即year_id。

User.objects.filter(order__select__annual__year_id=2014)

关于django - Django跨越关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26696122/

相关文章:

python - Django 中的 RESTful API 用于从服务器获取信息

python - Django通配符查询

sql - 查询以获取日期范围内的计数、小计和总计

python - Django:创建版本号增加的模型对象

django - 多对多选择多个对象

python - Django 1.6 : Forgot password not sending email

python - Django - 属性错误: 'tuple' object has no attribute 'name'

python - 防止 Django 模板中的换行符分割名称列表

django prefetch_与过滤器相关

python - 用于递归 ManyToMany 的 Django Admin 内联