【问题标题】:Invalid syntax error in Django form translateDjango表单翻译中的无效语法错误
【发布时间】:2023-04-06 18:06:01
【问题描述】:

我尝试翻译我的 forms.py(占位符、选项等),但出现语法错误。我的代码在这里;

from django import forms
from django.utils.translation import ugettext_lazy as _

class CreatePollForm(forms.Form):
        title = forms.CharField(max_length = 300, label="", widget=forms.Textarea(attrs={'rows':'1','cols':'20', 'placeholder': (_'Type your question here'),'class': 'createpoll_s'}))
        polls = forms.CharField(max_length = 160, required=False, label="", widget=forms.TextInput(attrs={ 'placeholder': (_'Enter poll option'), 'class': 'votes firstopt','id':'id_polls1','data-id':'1'}))
        ...     

如果我这样使用,我会出现语法错误。

如何翻译“在此处输入您的问题”和“输入投票选项”?

【问题讨论】:

    标签: python django syntax django-modeltranslation


    【解决方案1】:

    无效语法错误是由以下代码引起的:

    (_'Type your question here')
    

    这应该是:

    _('Type your question here')
    

    【讨论】:

      【解决方案2】:

      _ 只是一个标识符,就像f 一样。当您调用函数f 时,您使用f(…) 执行此操作,因此对于_ 它是相同的:_(…)

      因此,您可以使用以下方法修复语法错误:

      class CreatePollForm(forms.Form):
          title = forms.CharField(max_length = 300, label="", widget=forms.Textarea(attrs={'rows':'1','cols':'20', 'placeholder': _('Type your question here'),'class': 'createpoll_s'}))
          polls = forms.CharField(max_length = 160, required=False, label="", widget=forms.TextInput(attrs={ 'placeholder': _('Enter poll option'), 'class': 'votes firstopt','id':'id_polls1','data-id':'1'}))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        • 2018-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多