Задать вопрос

Как правильно поменять значение поля даты?

Имеется динамически сгенерированная модель.
Работа с ней выполняется так:
# ...
    # model_cls - динамически сгенерированная модель
    class ValidationForm(ModelForm):
        class Meta:
            model = model_cls
            fields = '__all__'
    form = ValidationForm(params)
    if form.is_valid():
        params = form.cleaned_data
    model_cls.objects.create(**params).save()
    # ...

При таком подходе учитывается язык и поэтому дата вида "04.09.2014" обрабатывается без ошибок.
Сейчас возникла задача сохранить отдельное значение в отдельной модели:
function func(model_cls, row_id, field_name, field_value):
    row = model_cls.objects.get(id = row_id)
    row.__setattr__(field_name, field_value)
    row.save()

Такой подход не работает, т.к. не учитывает язык и требует дат в формате "YYYY-MM-DD"
Как бы по-красивей решить эту проблему?

UPD. Хочется делать стандартную валидацию с преобразованием, но не для формы, а только для одного поля.
  • Вопрос задан
  • 2297 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@gimntut Автор вопроса
Остановился на таком варианте:
# ...
    class ValidationForm(ModelForm):
        class Meta:
            model = model_cls
            fields = (field_name, )
    params = {field_name: field_value}
    form = ValidationForm(params)
    if form.is_valid():
        field_value = form.cleaned_data[field_name]
    # ...
    row = model_cls.objects.get(id = row_id)
    if hasattr(row, field_name):
        row.__setattr__(field_name, field_value)
        row.save()
# ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы