TransWikia.com

Проблема инициализации forms Django

Stack Overflow на русском Asked by user348484 on November 24, 2021

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

Спасибо за помощь!

forms.py

    class Meta:
        model = Users
        fields = ['chat_id', 'username', 'balance']
        widgets = {
            'chat_id': forms.NumberInput(attrs={'placeholder': 'Укажите токен QIWI', 'class': 'form-control'}),
            'username': forms.TextInput(attrs={'placeholder': 'Укажите токен QIWI', 'class': 'form-control'}),
            'balance': forms.NumberInput(attrs={'placeholder': 'Укажите токен QIWI', 'class': 'form-control', 'step': 0.10}),
            'referrals': forms.NumberInput(attrs={'placeholder': 'Укажите токен QIWI', 'class': 'form-control'})
        }

views.py

    login_url = '/login/login'
    # edit_user_form = EditBotUser() # Если инициализировать таким образом, то все работает

    def get(self, request, chat_id):
        user_obj = get_bot_user_by_chat_id(chat_id) # Бизнес логика, вынесена в другой файл
        if user_obj:
            edit_user_form = EditBotUser()  # Но вот так не работает :(
            print(edit_user_form.fields)  # Возвращает AttributeError: 'EditBotUser' object has no attribute 'fields'
            return render(
                request,
                'dashboard/edit_bot_user.html',
                context={'edit_user_form': edit_user_form, 'user': user_obj}
            )
        else:
            return HttpResponse('Данный пользователь не существует!')

    def post(self, request, chat_id):
        pass

urls.py

urlpatterns = [
    path('', Settings_panel.as_view(), name='settings'),
    path('qiwi/settings/', Settings_qiwi.as_view(), name='settings_qiwi'),
    path('user/edit/<int:chat_id>', EditBotUser.as_view(), name='edit_bot_user')
]

One Answer

Мне кажется, или у вас форма и вьюха называются одинаково? Если это так, то вы просто пытаетесь аттрибутом вьюхи сделать саму вьюху, а у нее действительно нет поля fields. Назовите классы согласно их функционалу, например EditBotUserForm и EditBotUserView и все станет хорошо

Answered by Ekaterina Frolova on November 24, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP