Познаю django (да и вообще веб) методом проб и ошибок на домашнем проекте.
Есть простенькая модель:
class CrArchive(models.Model):
cr_id = models.IntegerField(primary_key=True)
type = models.ForeignKey(CrType, db_index=True)
cr_description = models.TextField(blank=True)
latitude = models.FloatField(blank=True)
longitude = models.FloatField(blank=True)
class Meta:
managed = False
db_table = 'cr_archive'
Для ознакомления написал вьюшку для нее:
def index(request):
latest_crime_list = CrArchive.objects.order_by('-cr_id')[:5]
context = {'latest_crime_list': latest_crime_list, }
return render(request, 'archive/archive.html', context)
И часть шаблона под нее:
<div class="row">
{% if latest_crime_list %}
{% for crime in latest_crime_list %}
<div class="col-md-12">
<div class="bs-callout bs-callout-warning">
<h4>{{ crime.latitude }} | {{ crime.longitude }} | {{ crime.type }}</h4>
<p>{{ crime.cr_description }}</p>
</div>
</div>
{% endfor %}
{% endif %}
</div>
Прекрасно выводятся 5 последних записей из cr_archive.
Теперь решил усложнить задачу. Допустим, пользователь решил вывести все записи, где latitude = 34.567 (значение latitude , допустим, вводится в каком-нибудь компонентике на странице). Тут у меня затык. Я не очень понимаю, как мне передать этот фильтр в модель и отфильтровать значения и как переделать представление. И как не выводить ничего, если поиск по фильтру не запущен? Прошу помощи.