__init __ () принимает 1 позиционный аргумент, но 2 были заданы. response = wrapped_callback (запрос, * callback_args, ** callback_kwargs) - PullRequest
0 голосов
/ 19 мая 2019

мой файл views.py

class Home(TemplateView):

    @staticmethod
    def get_name(request):
        form = NameForm() #function in forms.py
        return render(request, 'blog/post.html', {'form': form})

    @staticmethod
    def post(request):
        global text
        form = NameForm(request.POST)
        if form.is_valid():
            text = form.cleaned_data['your_name']
            # i dont where is the error anyone plz help
        args = {'form': form, 'text': text}
        return render(request, 'blog/post.html', args)

1 Ответ

0 голосов
/ 19 мая 2019

Вы, вероятно, хотите использовать FormView [Django-doc] . Это представление также имеет TemplateResponseMixin [Django-doc] , поэтому по сути это TemplateView [Django-doc] , но с формой. Приятно то, что Django реализует большую часть «стандартного кода», поэтому количество, которое вам нужно сделать, очень ограничено.

Затем вы можете отобразить его как:

from django.views.generic.edit import <b>FormView</b>

class Home(<b>FormView</b>):
    <b>form_class = NameForm</b>

    def <b>form_valid</b>(self, form):
        return self.render_to_response(
            self.get_context_data(text=form.cleaned_data['your_name'])
        )

и все. FormView автоматически добавляет переменную шаблона form к данным контекста, и, если форма верна, вызывается функция form_valid, а затем мы передаем text в контекст.

Обычно, если форма действительна, ответ не очень распространен. Если POST имеет побочные эффекты, лучше реализовать шаблон Post / Redirect / Get [wiki] . Здесь, однако, нет никаких побочных эффектов, так что все в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...