Кажется, теперь работает, все, что я изменил, было chartext на charfield в моих моделях. Почему он не будет искать в текстовом формате? Это было исправлением?
У меня возникла проблема с разделом 7 djangobook, где мы показываем результаты нашего поиска книг. Я не пользуюсь книгами, но я не знаю, что я делаю неправильно.
Примечание: поисковый запрос "q" проходит правильно, он просто не показывает результаты. Шаблон действительно появляется, хотя. Я собирался просто пропустить это, но я действительно начинаю задумываться, что еще я мог делать не так?
Я слежу за: http://djangobook.com/en/2.0/chapter07/
вот мой код
urls.py
from django.conf.urls.defaults import patterns, include, url
from EM.catalog import views
urlpatterns = patterns('',
(r'^search-form/$', views.search_form),
(r'^search/$', views.search),
views.py
from django.template import loader, Context
from django.shortcuts import render_to_response
from django.http import HttpResponse
from EM.catalog.models import em_tank
def search_form(request):
return render_to_response('search_form.html')
def search(request):
if 'q' in request.GET and request.GET['q']:
q = request.GET['q']
tanknotes = em_tank.objects.filter(em_tank_notes__icontains=q)
return render_to_response('search-results.html', {'tanknotes': tanknotes, 'query': q})
else:
return HttpResponse("Please input a search term")
Поиск-results.html
<p>You searched for: <strong>{{ query }}</strong></p>
{% if tanknotes %}
<p>Found {{ tanknotes|length }} result{{ tanknotes|pluralize }}.</p>
<ul>
{% for em_tank_notes in tanknotes %}
<li>{{ em_tank.em_tank_notes }}</li>
{% endfor %}
</ul>
{% else %}
<p>No tanks matched your search criteria.</p>
{% endif %}
модель
from django.db import models
class em_tank(models.Model):
em_tank_date_acquired = models.DateField()
em_tank_notes = models.CharField(max_length=150, verbose_name='Notes', blank=True)