@MrCute
Студент

Почему вылетает ошибка в этом коде?

Приветствую.
Моя задача: получить все альбомы пользователя из БД, и сгенерировать по них выпадающий список - select.

Но у меня вылетает исключение "AttributeError"", и ошибка "'FilterSortingInProfileForm' object has no attribute 'get'"

forms.py
class FilterSortingInProfileForm(forms.Form):

    filter_by = forms.ChoiceField()
    sort_by = forms.ChoiceField(choices=(('Time', 'Час'), ('Views', 'Перегляди')))

    def __init__(self, user, *args, **kwargs):
    
        super(FilterSortingInProfileForm, self).__init__(self, *args, **kwargs)
        chs = [(al.name, al.id) for al in Album.objects.filter(owner=user)]  # создаю кортеж из альбомов пользователя
        self.fields['filter_by'] = forms.ChoiceField(choices=chs)


views.py
def profile(request, username):

    u = get_object_or_404(User, username=username)

    if request.method == 'GET':
        FilterSortForm = FilterSortingInProfileForm(u)

        data = {'FilterSortForm': FilterSortForm}

    return render(request, template_name='core/profile.html', context=data)


profile.html
<form method="get">
     {{ FilterSortForm.filter_albums }}
     {{ FilterSortForm.sort_by }}
     <input type="submit">
 </form>
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
Ba1t
@Ba1t
super(FilterSortingInProfileForm, self).__init__(self, *args, **kwargs)

Уберите self в __init__:
super(FilterSortingInProfileForm, self).__init__(*args, **kwargs)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы