@Lepilov

Обойти ограничение на количество символов в форме?

Есть модель с полем ограниченным 32 символами. В админке при вводе в поле формы более 32 символов получаю сообщение ограничении. Смысл в том что мне надо в это поле вводить через запятую айдишники (до 20 символов каждый) . Потом данные из формы обрабатываются, выполняяется split(',') и полученные данные отправляются в базу через bulk_upload.
Я попробовал в __init__ переопределить max_length, но это дало возможность вводить большее кол-во символов но не сохранять их.

Как обойти это ограничение, не меняя max_length для БД?
models.py

class MyModels(models.Models):
    ....
    items = models.CharField(verbose_name=_(u'Item ID'), max_length=32)

forms.py

class ItemForm(ModelForm):
        class Meta:
            model = MyModel
            fields = ['items']
        
        def __init__(self, *args, **kwargs):
                super(ItemForm, self).__init__(*args, **kwargs)
                )
                self.fields["items"] = forms.CharField(
                    max_length=512,
                )
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 2
@AstraVlad
Финансист, консультант, программист-любитель
Я пока вижу два варианта:
1. Использовать формсет и вводить сразу несколько записей (но не через запятую).
2. Написать форму самому и уже во вьюшке разбирать введенные данные.

Вводить в поле ModelForm больше символов, чем требует Model это все-равно что пытаться налить два литра пива в литровую банку. Не войдет.
Ответ написан
@bacon
Есть модель с полем ограниченным 32 символами.

это дало возможность вводить большее кол-во символов но не сохранять их.

Включай уже мозги, max_length в базе делает ограничение, как ты хочешь сохранить в базе больше, чем сам руками же и прописал.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы