Как мне проверить, равны ли Django QuerySets?

Я пытаюсь проверить свои взгляды на Джанго. Это представление передает QuerySet в шаблон:

def merchant_home(request, slug):
  merchant = Merchant.objects.get(slug=slug)
  product_list = merchant.products.all()
  return render_to_response('merchant_home.html',
                            {'merchant': merchant,
                            'product_list': product_list},
                            context_instance=RequestContext(request))

и проверить:

  def test(self):
    "Merchant home view should send merchant and merchant products to the template"
    merchant = Merchant.objects.create(name='test merchant')
    product = Product.objects.create(name='test product', price=100.00)
    merchant.products.add(product)

    test_client = Client()
    response = test_client.get('/' + merchant.slug)
    # self.assertListEqual(response.context['product_list'], merchant.products.all())
    self.assertQuerysetEqual(response.context['product_list'], merchant.products.all())

РЕДАКТИРОВАТЬ я используюself.assertQuerysetEquaя вместоself.assertListEqual, К сожалению, это до сих порт, и терминал отображает это:[''] != []

assertListEqual поднимает:'QuerySet' object has no attribute 'difference' а такжеassertEqual тоже не работает, хотяself.assertSetEqual(response.context['product_list'][0], merchant.products.all()[0]) действительно проходит.

Я предполагаю, что это потому, что QuerySets - это разные объекты, даже если они содержат одинаковые экземпляры модели.

Как проверить, что два QuerySet содержат одинаковые данные? Я даже проверяю это правильно? Это мой 4-й день обучения Джанго, поэтому я хотел бы узнать лучшие практики, если это возможно. Благодарю.

Ответы на вопрос(6)

Ваш ответ на вопрос