Django通过一个查询获取数据库字段

时间:2017-03-03 11:32:32

标签: django django-models

我在django中有一些模型(User(standard)Member(extended user)CalculationsSubscriptionType),如下所示:

class Member(models.Model):
    user = models.ForeignKey(to=User)
    ..........

class Calculations(models.Model):
    user = models.ForeignKey(to=User)
    .....

class Type(models.Model):
    limit = models.IntegerField()
    name = models.CharField(max_length=50)
    default = models.BooleanField()


class Subscription(models.Model):
    started = models.DateField()
    type = models.ForeignKey(Type)
    member = models.OneToOneField(Member)

因此,

  • Calculations已通过User
  • ForeignKey相关联
  • Member也通过user
  • ForeignKey相关联
  • Subscriptions已与Member以及TypeForeignKey
  • 相关联

在我看来,我想查询数据库并访问所有这些模型的信息。

因此我想要除当前登录以外的所有成员,并且我想获得计算的数量和订阅的类型。

我正在尝试使用一个查询。

我尝试过类似的事情:

@login_required
def members(request):
    // That's how I get all information about user and members, but I also need the calculation and subscription
    members_list = Member.objects.select_related('user').all().exclude(user=request.user)
    context = {'members': members_list}
    return render(request, 'master/members.html', context)

任何建议我该怎么做?

1 个答案:

答案 0 :(得分:2)

访问相关模型中的所有元素。

qv = Member.objects.exclude(user=request.user).values('user__subscription__started', 'user', 'user__calculations__user')