将查询结果附加到另一个查询集

时间:2018-01-26 16:10:57

标签: python django append django-queryset

我有两种模式:

class A(models.Model)
    username = models.CharField(max_length=128, primary_key=True)
    last_login = models.DateTimeField(db_index=True,
                                  default=get_default_datetime)

class B(models.Model)
     user = models.CharField(max_length=25)
     email = models.CharField(max_length=25)

我的目标是为模型A中与模型B中的“用户”匹配的所有“用户名”创建一个包含用户名,电子邮件,last_login的列表。所以它看起来像这样:

username    email      last login
user1       s@abc.com  2018-01-01 00:01:01
user2       t@cde.com  2017-12-30 05:01:00
...         ......     ...

等等。

我在view.py中做到了这一点:

class userListView(ListView):
    template_name = 'user.html'
    context_object_name = 'user_list'

    def get_queryset(self):
        users = A.objects.values('username')
        for user in users:
           qs1 = A.objects.values('username', 'last_login')
           qs2 = B.objects.filter(user = user).values('user',  
                                                         'email')
           queryset = sorted(chain(qs1, qs2))
    return queryset

然而,这不起作用。我只收到一个条目。我在这做错了什么? 我还尝试将qs2附加到qs1。这也没有用。我得到错误,qs1或qs2没有'追加'的装束。

0 个答案:

没有答案