【问题标题】:How do I solve a None error in a translation website如何解决翻译网站中的 None 错误
【发布时间】:2020-10-18 16:51:17
【问题描述】:

我目前正在编写我的第一个网站,它是一种发明语言的翻译器。您输入一个随机短语,它应该被翻译成发明的语言。 这是翻译的代码:

class TranslatorView(View):
    template_name=  'main/translated.html'
    def get (self, request, phrase, *args, **kwargs):
        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 render(request, 'main/translator.html', {'translation': translation})
    def post (self, request, *args, **kwargs):
        self.phrase = request.POST.get('letter')
        translation = self.phrase
        context = {
            'translation': translation
        }
        return render(request,self.template_name, context )

您输入短语的模板:

{% extends "base.html"%}

{% block content%}
<form action="{% url 'translated' %}" method="post">{% csrf_token %}
    <div class="form-group">
        <center><h2 class = "display-3">TRANSLATE YOUR DNA CHAIN</h2></center>
        <br>
        <br>
        <textarea class="form-control" name='text' id="exampleFormControlTextarea1" rows="6"></textarea>
        <br>
        <button type='Submit' class= "btn btn-primary btn-lg btn-block">Translate</button>


    
      </div>   
</form>
{% endblock content %}

应翻译文本的模板:

{% extends "base.html"%}

{% block content%}

<div >
    <center><h2 class = "display-4">DNA TRANSLATED SUCCESFULLY INTO</h2></center>
    <br>
    <br>
    <br>

    <center>
        <h3>
        {{ translation }}
    </h3>
    </center>
       

    
</div>   

{% endblock content%}

事情是这样的,当我翻译短语并将我重定向到翻译后的模板时,出现的不是翻译后的短语。

如您所见,它显示为无。

我不知道错误在哪里。如果有人知道错误,请回答,因为我卡住了。

谢谢

【问题讨论】:

    标签: python html django translation


    【解决方案1】:

    您的文本区域的名称是 text 而不是 letter

    self.phrase = request.POST.get('text', 'default_value')
    

    此外,没有必要为对象设置属性,您可以将其用作变量

    phrase = request.POST.get('text', 'default_value')
    

    【讨论】:

    • 为什么要写default_value?。我问这个只是为了提高我的知识
    • 如果没有任何内容通过表单,则设置默认值,如果您希望用户始终拥有此字段,则没有必要
    • 好的,现在出现了我写的那一行。现在我应该怎么做才能根据我在 get 函数中写的内容来翻译文本
    猜你喜欢
    • 2019-03-03
    • 2014-03-03
    • 2011-06-18
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    相关资源
    最近更新 更多