Я новичок в Django и не слишком разбираюсь в MVC, DB-запросах.
У меня есть таблица Customer, которая включает имя_пользователя, имя_домена, а также имя_состояния (вытащили из таблицы внешних ключей). В HTML я пытаюсь отобразить результаты в списке, сначала отсортированном в алфавитном порядке по имени_ state_name, затем по имени city_name, а затем по имени имени пользователя. Так вот..
ARIZONA
PHOENIX
AAA, Inc.
BBB, LLC.
SCOTTSDALE
AAA, LLC.
DDD, Corp.
CALIFORNIA
ANAHEIM
...
My model.py выглядит следующим образом:
from django.db import models
class Customer(models.Model):
def __unicode__(self):
return self.customer_name
customer_name = models.CharField(max_length=60)
city_name = models.CharField(max_length=30)
state = models.ForeignKey('State')
class State(models.Model):
def __unicode__(self):
return self.state_name
state_name = models.CharField(max_length=20)
state_code = models.CharField(max_length=2)
В моем urls.py у меня есть:
url("^customers/$",
direct_to_template,
{'template': 'pages_fixed/customers.html',
'extra_context': {'customers': Customer.objects.all().order_by('state')}},
name='customers'),
И в моем HTML, у меня есть рабочий шаблон как:
<div class='customers'>
{% for customer in customers %}
<div class='block_customer'>
<p>{{ customer.state.state_name }}</p>
<p>{{ customer.city_name }}</p>
<p>{{ customer.customer_name }}</p>
</div>
{% endfor %}
</div>
Все это работает, но, очевидно, не правильно сортируется, и я не уверен, что это лучший способ его разработки. Я пробовал некоторые внутренние циклы с шаблонами, надеялся, что шаблоны позволят мне определить некоторые правила сортировки, но это, похоже, не поддерживается/правильно. Я подозреваю, что мне нужно запрашивать данные по-другому или предварительно сортировать их в коде раньше времени? Я не уверен, что это будет сделано в представлении (что такое Django-форма контроллера?). Если бы кто-нибудь мог указать мне в правильном направлении, это было бы очень полезно!