Недопустимая синтаксическая ошибка в Django форме перевода - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь перевести мои forms.py (заполнитель, выбор и т. Д. c), но я принимаю синтаксическую ошибку. мой код здесь;

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'}))
        ...     

Если я использую это, я принимаю синтаксическую ошибку.

как я могу перевести «Введите свой вопрос здесь» и «Введите опцию»?

Ответы [ 2 ]

2 голосов
/ 12 апреля 2020

Недопустимая синтаксическая ошибка вызвана следующим кодом:

(_'Type your question here')

Это должно быть:

_('Type your question here')
2 голосов
/ 12 апреля 2020

_ - это просто идентификатор, как и f. Когда вы вызываете функцию f, вы делаете это с помощью f(…), поэтому для _ это то же самое: _(…).

Таким образом, вы можете исправить синтаксические ошибки с помощью:

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