Фильтр Django, возвращающий ошибки атрибутов
У меня есть следующий код, который предназначен для создания фильтрованного представления моего набора данных на основе нескольких выпадающих выборов, определенных в MyFilter. В моем /picks url я вижу строку поиска, но нет критериев для фильтрации. Когда я перехожу к /picks/8 для проверки фильтрации, я получаю следующий атрибут с моей моделью. Я также пробовал orders = Pick.order_set.all(), но тоже безрезультатно. Есть предложения, как заставить это работать?
error:
'Pick' object has no attribute 'model'
pick_list.html:
<form method="get">
{{myFilter.form}}
<button class="btn btn-primary" type="submit">Search</button>
</form>
views.py
def week(request):
#orders = Pick.objects.get(id=pk_test)
orders = Pick.objects.all()
#orders = week.order_set.all()
myFilter = PickFilter(request.GET, queryset=orders)
orders = myFilter.qs
context = {'week':week, 'orders':orders, 'order_count':order_count,
'myFilter':myFilter}
return render(request, 'app/pick_list.html',context)
filters.py
class PickFilter(django_filters.FilterSet):
age = CharFilter(field_name='name', lookup_expr='icontains')
name = CharFilter(field_name='name', lookup_expr='icontains')
class Meta:
model = Pick
fields = '__all__'
exclude = ['photo']
models.py
class Pick(models.Model):
submitter = models.CharField(max_length=50, verbose_name='Submitter', null=True, blank=True)
week = models.CharField(max_length=50, verbose_name='Week', null=True, blank=True)
name = models.CharField(max_length=50, verbose_name='Name', null=True, blank=True)
photo = models.CharField(max_length=50, verbose_name='Photo', null=True, blank=True)
#photo = models.ImageField(upload_to="media", max_length=500, verbose_name='Photo', null=True, blank=True)
hometown = models.CharField(max_length=50, verbose_name='Hometown', null=True, blank=True)
age = models.IntegerField(verbose_name='Age', null=True, blank=True)
progress = models.IntegerField(verbose_name='Progress', null=True, blank=True)
occupation = models.CharField(max_length=50, verbose_name='Occupation', null=True, blank=True)
elim_week = models.CharField(max_length=50, verbose_name='Week Eliminated', null=True, blank=True)
rank = OrderField(verbose_name='Rank', null=True, blank=True)
def __str__(self):
return self.name
def get_fields(self):
return [(field.verbose_name, field.value_from_object(self)) for field in self.__class__._meta.fields]
def get_absolute_url(self):
return reverse('app:pick-update', kwargs={'pk': self.pk})
class Meta:
db_table = 'pick'
ordering = ['rank']
verbose_name = 'Pick'
verbose_name_plural = 'Picks'
urls.py
from django.urls import path
from .views import *
app_name = 'app'
urlpatterns = [
path('', home, name='home'),
path('picks/', PickList.as_view(), name='pick-list'),
path('picks/filter/', week, name="week"),
]