В моей функции отсутствует 1 требуемый позиционный аргумент: ‘request’

#python #html #django

#python #HTML #django

Вопрос:

В настоящее время я работаю над своим первым веб-сайтом, и у меня возникли некоторые проблемы в views.py . В частности, это определение:

 def translated_view(self, request):
    text = request.POST.get('text')
    translate = self.translator
    context = {
        'translated': translate(text)

    }
    return render(request, context, 'main/translated.html')
  

Self — это из-за этой другой функции, которая переводит текст на изобретенный язык.

 def translator_view(request):
    def translator(phrase):
        translation = ""
        for letter in phrase:
            if letter.lower() in "a":
                if letter.isupper():
                    translation = translation   "U"
                else:
                    translation = translation   "u"
            elif letter.lower() in "t":
                if letter.isupper():
                    translation = translation   "A"
                else:
                    translation = translation   "a"
            elif letter.lower() in "c":
                if letter.isupper():
                    translation = translation   "G"
                else:
                    translation = translation   "g"
            elif letter.lower() in "g":
                if letter.isupper():
                    translation = translation   "C"
                else:
                    translation = translation   "c"
        return translation
    return render(request, 'main/translator.html', { translator : 'translator'})
  

Как вы можете видеть, у меня есть аргумент запроса. Однако я все еще вижу эту ошибку.

Комментарии:

1. похоже, вы используете представление на основе функций , если это так, удалите self .

2. Как запускается эта функция? Если это простая функция просмотра, которую вам нужно выполнить: translated_view(request) — не уверен, куда self входит — является ли она частью класса?

3. Что именно здесь за класс? Вы не можете просто использовать SomeClass.some_method ….

4. @ArakkalAbu: это, скорее всего, не сработает, поскольку self.translator указывает на наличие некоторого контекста класса. Но, конечно, это не то, как вы ссылаетесь на запускаемый метод.

5. это часть другой функции