Я разрабатываю проект Django с интернационализацией. Английский / французский
даты должны отображаться в формате дд / мм / гггг, когда пользовательский веб-браузер имеет FR, и гггг-мм-дд, если пользователь веб-браузер является EN
, чтобы сделать это, я использую JS, который тестирует любимый язык пользователя веб-браузера и формат отображения соответственно
Это работает, пока я не изменю свою модель, добавив ограничение unique_together с эта дата
Теперь я получил ошибку, когда веб-браузер на французском, и я пытаюсь зарегистрировать дату ( asp_ent_dat )
'date format "20/03/2020" is invalid. Correct format is "yyy-mm-dd".
models.py:
class Entree(models.Model):
asp_ent_cle = models.AutoField(primary_key=True)
asp_ent_loc = models.CharField("Site concerned by the operation", max_length=10, null=True, blank=True)
med_num = models.CharField("Trial batch number", max_length=3, null=True, blank=True,)
asp_ent_dat = models.DateField("Entry date", null=True, blank=True)
asp_ent_pro_pay = models.CharField("Country of treatment origin in case of entry", max_length=10, null=True, blank=True)
asp_ent_pro_sit = models.CharField("Processing source site in case of entry", max_length=10, null=True, blank=True)
opr_nom = models.CharField("Input operator", max_length=10, null=True, blank=True)
opr_dat = models.DateField("Entry date", null=True, blank=True)
log = HistoricalRecords()
class Meta:
db_table = 'pha_asp_ent'
verbose_name_plural = 'Entries'
ordering = ['asp_ent_cle']
unique_together = ['asp_ent_loc','med_num','asp_ent_dat']
JS:
$(function(){
if(window.navigator.language == 'fr-FR' | window.navigator.language == 'fr'){
$("#id_asp_ent_dat").datepicker(
{
dateFormat: 'dd/mm/yy',
}
);
}
else
{
$("#id_asp_ent_dat").datepicker(
{
dateFormat: 'yy-mm-dd',
}
);
});
forms.py:
def clean(self):
cleaned_data = super(EditForm, self).clean()
cle1 = self.data.get('asp_ent_loc')
cle2 = self.data.get('med_num')
# cle3 = self.data.get('asp_ent_dat') ***LINE THAT RAISE ERROR***
cle3 = self.cleaned_data['asp_ent_dat']