我使用的是Django包Django Auto Complete light
,下面是我如何使用它的:
在网址.py我使用:
path('buy-invoice-items-autocomplete/', views.ItemAutoComplete.as_view(), name='buy_invoice_items_autocomplete', ),
然后在视图.py:
class ItemAutoComplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
qs = Item.objects.filter().order_by('id')
if self.q:
qs = qs.filter(Q(id__iexact=self.q) | Q(name__icontains=self.q))
return qs
最后我把它用在我的表单.py允许用户使用它进行筛选。你知道吗
现在,当我尝试将其包含在单元测试文件中时,我是这样做的:
class TestItemAutoComplete(TestCase):
def test_visit(self):
self.client.get('/buy-invoice-items-autocomplete/')
使用覆盖率包表明我的测试没有覆盖以下行:
if self.q:
qs = qs.filter(Q(id__iexact=self.q) | Q(name__icontains=self.q))
如何在课堂上达到这一部分并进行测试?你知道吗
您需要在测试调用中设置自动完成文本(查询参数
q
),例如:否则
q
将为空,因此if self.q
为false,并且在测试期间不会调用下面的行。你知道吗相关问题 更多 >
编程相关推荐