我想制作一个搜索栏,在 django 中搜索数据库中的查询,并且到目前为止已经提出了这个:
看法:
class IndexView(LoginRequiredMixin, generic.ListView):
template_name = 'patients/index.html'
context_object_name = 'all_patients'
def get_queryset(self):
queryset = patient.objects.all()
query = self.request.GET.get('q')
if query:
queryset = queryset.filter(
Q(First_Name__icontains=query) |
Q(Surname__icontains=query) |
Q(DOB__icontains=query)
).distinct()
return queryset
else:
return patient.objects.all()
和我模板上的按钮:<form class="navbar-form navbar-left" role="search" method="get" action="{% url 'patients:index' %}">
<div class="form-group">
<input type="text" class="form-control" name="q" value="{{ request.GET.q }}">
</div>
<button type="submit" class="btn btn-default">Search</button>
</form>
和模型:class patient(models.Model):
TITLE_CHOICES = (
('Mr', 'Mr'),
('Mrs', 'Mrs'),
('Ms', 'Ms'),
('Miss', 'Miss'),
)
Title = models.CharField(max_length=100, blank=True, choices=TITLE_CHOICES)
First_Name = models.CharField(max_length=250, default='')
Surname = models.CharField(max_length=250, default='')
DOB = models.DateField()
...
def get_absolute_url(self):
return reverse('patients:patientInfo', kwargs={"pk":self.pk})
def __str__(self):
return self.First_Name + " " + self.Surname
我收到错误:TypeError: 'QuerySet' object is not callable
我不知道我做错了什么,我对 Django 很陌生。
最佳答案
我在添加属性时遇到这个问题,然后是方法,不能调用
@property
def get_queryset(self):
所以我通过删除属性来修复它
关于python - 查询集对象不可调用 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45987660/