@KIN1991
Python, PHP developer

Как сделать составное поле в Django?

Привет всем, есть модель с полем fio, нужно создать форму и разделить это поле на 3 части, т.е на поля има, фамилия и отчество. Как это можно сделать?
  • Вопрос задан
  • 432 просмотра
Решения вопроса 1
@marazmiki
Укротитель питонов
# models.py
class Model(models.Model):
    fio = models.CharField(max_length=255)

# forms.py
class Form(forms.ModelForm):
    first_name = forms.CharField()
    middle_name = forms.CharField()
    last_name = forms.CharField()

    def clean(self):
        self.instance.fio = '{first_name} {middle_name} {last_name}'.format(**self.cleaned_data)
        return self.cleaned_data

    class Meta:
        model = Model
        fields = ['first_name', 'last_name', 'middle_name']


Код писал прямо в браузере, не проверял на орфографию, но идея именно такая: в clean() формы подставляем собранное значение в self.instance, которое и будет объектом связанной с формой модели.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zelsky
@zelsky
fio.split(" ", 1) - если пробел
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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