'DeferredAttribute' object has no attribute 'objects' Django

Я хотела сделать фильтрацию по полю ciudades в модели Couriers, но, django мне выдал ошибку.

models.py:

class Couriers(models.Model): #el modelo que crea tabla en la base de datos para transportistas
title = models.CharField(max_length=50, verbose_name='Nombre y apellidos')
estado = models.CharField(max_length=30, verbose_name='Estado Del Pedidoo')
ciudad = models.CharField(max_length=50, verbose_name='Ciudad')
class Meta: #sirve para anadirle el nombre plural y normal en la panel de administrador
    verbose_name_plural = 'Transportistas'
    verbose_name = 'Transportista'
    ordering = ['-title']

views.py:

def index(request):
ciudades = Couriers.ciudad.objects.all()
estados = Couriers.estado.objects.all()
context = {'ciudades': ciudades, 'estados': estados}
return render(request, 'index.html', context)

Ответы (1 шт):

Автор решения: Andrey Maslov

Судя по всему ты хочешь сделать не фильтрацию по этим полям, а просто вывести эти поля в шаблон, сделать это можно таким способом.

def index(request):
    couriers = Couriers.objects.values("ciudades", "estados")
    ciudades = [obj["ciudades"] for obj in couriers]
    estados = [obj["estados"] for obj in couriers]
  
    context = {'ciudades': ciudades, 'estados': estados}
    return render(request, 'index.html', context)

но не понятно зачем тебе разделять эти два поля отдельно в шаблон, можно просто выдать

return render(request, 'index.html', {"couriers": Couriers.objects.all()})

и в шаблоне уже пробегаться по списку объектов и выводить то поле, которое тебе нужно. Например:

{% for courier in couriers %}
  ciudades - {{courier.ciudades}}
  estados - {{courier.estados}}  
{% endfor %}

Если тебе нужно именно фильтровать по каким-то определенным значениям,тогда записывается так:

ciudades = Couriers.objects.filter(ciudades="required value")

Подробнее про фильтры можно найти тут: https://docs.djangoproject.com/en/3.1/topics/db/queries/#retrieving-specific-objects-with-filters

→ Ссылка