Как реализовать выбор с предварительной сортировкой в Django?

В базе данных есть таблица с двумя столбцами: 'Город' и 'Почтовое отделение'. Как реализовать отбор филиалов с предварительной сортировкой по 'City'?

enter image description here

У меня нет абсолютно никаких идей, я буду благодарен за любые советы.

Если это простая сортировка, то можно предварительно отсортировать вывод в 2 местах

  1. вы можете сортировать в model.py :
class Meta:
        ordering = ['part_name']

(пример)

class Parts(models.Model):
    part_api_barcode = models.CharField(max_length=100, null=True, blank=True , verbose_name='API Barcode')
    part_name = models.CharField(max_length=200, null=True, blank=True , verbose_name='Name')
    part_model = models.CharField(max_length=100, null=True, blank=True , verbose_name='Model')
    part_note = models.TextField(null=True, blank=True, verbose_name='Note') 
    part_manufacturer_barcode = models.CharField(max_length=100, null=True, blank=True , verbose_name='Manufacturer Barcode')
    part_manufacturer_part_number= models.CharField(max_length=100, null=True, blank=True , verbose_name='Manufacturer Part Number')
    part_oem_number= models.CharField(max_length=100, null=True, blank=True , verbose_name='OEM Number')
    part_qty_in_stock = models.PositiveIntegerField( null=True, blank=True , verbose_name= 'Quantity In Stock')
    part_min_qty = models.PositiveIntegerField( null=True, blank=True , verbose_name= 'Minimum Quantity')
    part_compatible= models.CharField(max_length=100, null=True, blank=True , verbose_name='Where to Use')
    
    date_posted = models.DateTimeField(default=timezone.now)    
    creator = models.ForeignKey(User , on_delete=models.SET_NULL, blank=True, null=True,)

    class Meta:
        ordering = ['part_name']
    def __str__(self):
        return str(self.part_name) + str(self.part_manufacturer_barcode)

    def get_absolute_url(self):
        return reverse('parts-detail-page',kwargs={'pk':self.pk})

  1. в файле view.py :
ordering = ['part_name']

(пример)

class PartsListView(ListView):
    model = Parts    
    context_object_name = 'parts'
    ordering = ['part_name']
    paginate_by = 50
Вернуться на верх