有人可以告诉我在翻译方面是否存在以下方法的问题?
我担心在数据库迁移时,详细名称会被修复。
models.py
import static org.junit.Assert.*;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(JUnitParamsRunner.class)
public class DateFormatTest {
@Parameters
private static final Object[] getCorrectDate() {
return new Object[] {
new Object[]{"2014-12-13 12:12:12"},
new Object[]{"2014-12-13 12:12:1"},
new Object[]{"2014-12-13 12:12:01"},
new Object[]{"2014-12-13 12:1"},
new Object[]{"2014-12-13 12:01"},
new Object[]{"2014-12-13 12"},
new Object[]{"2014-12-13 1"},
new Object[]{"2014-12-31 12:12:01"},
new Object[]{"2014-12-30 23:59:59"},
};
}
@Parameters
private static final Object[] getWrongDate() {
return new Object[] {
new Object[]{"201-12-13 12:12:12"},
new Object[]{"2014-12- 12:12:12"},
new Object[]{"2014- 12:12:12"},
new Object[]{"3014-12-12 12:12:12"},
new Object[]{"2014-22-12 12:12:12"},
new Object[]{"2014-12-42 12:12:12"},
new Object[]{"2014-12-32 12:12:12"},
new Object[]{"2014-13-31 12:12:12"},
new Object[]{"2014-12-31 32:12:12"},
new Object[]{"2014-12-31 24:12:12"},
new Object[]{"2014-12-31 23:60:12"},
new Object[]{"2014-12-31 23:59:60"},
new Object[]{"2014-12-31 23:59:50."},
new Object[]{"2014-12-31 "},
new Object[]{"2014-12 23:59:50"},
new Object[]{"2014 23:59:50"}
};
}
@Test
@Parameters(method="getCorrectDate")
public void testMethodHasReturnTrueForCorrectDate(String dateToValidate) {
assertTrue(DateFormat.validateDateFormatSimple(dateToValidate));
}
@Test
@Parameters(method="getWrongDate")
public void testMethodHasReturnFalseForWrongDate(String dateToValidate) {
assertFalse(DateFormat.validateDateFormat(dateToValidate));
}
}
如果上述问题,是否更好地实施以下内容?
forms.py
from django.utils.translation import gettext as _
class UserClient(models.Model):
user = models.OneToOneField(User,related_name='profile_client')
phone_cell = PhoneNumberField(verbose_name=_(u'Phone (Cell)'),null=True,blank=False)
phone_home = PhoneNumberField(verbose_name_(u'Phone (Home)'),null=True,blank=True)
答案 0 :(得分:3)
如果您使用latext版本的gettext,那么models.py中的方法将正常工作:
predict(fit, newdata = data.frame(x = x2))
# 1 2
# 1.060569 1.961109
事实上,Django自己的模型使用相同的翻译技术 - 看看AbstractUser类。您可以确定这种方法可以正常工作。
即使数据库迁移中存在from django.utils.translation import ugettext_lazy as _
class UserClient(models.Model):
phone_cell = PhoneNumberField(verbose_name=_('Phone (Cell)'), ...)
...
,也不会使用它。任何依赖verbose_name
的代码都会直接从模型中检索它。例如,ModelForm字段的默认标签将使用模型的verbose_name,并且由于转换是惰性的,实际标签将在评估时进行转换(例如,在模板上呈现)。