首页 > 解决方案 > Django 测试压缩的响应对象

问题描述

所以我有 SearchResultView(listview) 方法 get_context_data 是我压缩出版物和图像。为了在模板中轻松循环:

context['publications'] = zip(context['publications'], cover_images)

现在我正在测试,我有以下内容:

    def setUp(self):
        user = User.objects.create_superuser(username='admin', password='12345', email='')
        user.save()
        Publication.objects.create(title='eindhoven')
        Publication.objects.create(title='لحضور المؤتمر الدولي العاشر ليونيكود')
        Publication.objects.create(title='مزامير') #mazamir

和这个:

    def test_search_results(self):
        client = Client('127.0.0.1')
        response = client.login(username='admin', password='12345')
        response = client.get('/publication/show/', {'q': 'eindhoven'})

现在我需要解压缩响应中的 zip。我尝试了以下方法:

list(zip(*response.context['publications']))
list(zip(*response.context[-1]['publications']))

但他们返回一个空列表。有人有什么想法吗?

标签: pythondjango

解决方案


所以我为图像制作了一个额外的上下文变量,因为我不必解压缩 zip 对象。它返回空列表的原因是谷歌翻译不适用于 mazamir(拉丁语到阿拉伯语)的搜索。所以它可能适用于压缩对象,但它的代码太多使其变得困难。所以我选择了前一种解决方案。最后我制作了压缩对象和列表,因为模板需要压缩对象同时循环。


推荐阅读