Уведомления

Группа в Telegram: @pythonsu

#1 Март 25, 2013 22:22:39

django_beginner
Зарегистрирован: 2013-03-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание формы сложного обьекта.

Как создать и передать во views форму обьекта.
plan
|—-period_0
| |—-subject_0
| | |—-event_0
| | |—-event_1
| |
| |—-subject_1
|
итд.. period_1, period_2

в asp.net mvc там просто происходит автоматический биндинг обьекта по name поля, как это сделать в django? Прочитал про formset понял что там идет обработка множества форм, но как применить к примеру выше не понимаю. Поскажите пожалуйста? как потом в обработке мне понять что, например event_1 принадлежит subject_0 который прнадлежит period_0.

Офлайн

#2 Март 26, 2013 14:49:11

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2832
Репутация: +  186  -
Профиль   Отправить e-mail  

Создание формы сложного обьекта.

Если я правильно понял, то тебе нужны связаные формы.
http://djbook.ru/rel1.4/ref/contrib/formtools/form-wizard.html



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Март 26, 2013 17:35:18

django_beginner
Зарегистрирован: 2013-03-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание формы сложного обьекта.

Если я правильно понял, то тебе нужны связаные формы.
http://djbook.ru/rel1.4/ref/contrib/formtools/form-wizard.html
Из инструкции по ссылке:
1.Пользователь открывает первую страницу мастера, заполняет форму и отправляет её.
2.Сервер проверяет данные. Если они содержат ошибку, то форма отображается заново, показывая ошибки. Если данные прошли проверку, сервер сохраняет текущее состояние мастера в бэкэнде и перенаправляет пользователя на следующую страницу.

Нет это не то. Создание обьекта который содержит в себе список других обьектов которые в свою очередь содержат списки других)) Иерархический обьект получается. Plan содержит список объектов Period, а Period в себе содержит список Subject, создание этого объекта на одной странице. Добавлять дополнительные объекты при помощи javascripts а как их правильно организовать чтоб передать на сервер и обработать django. Думаю что пока выход только использовать json. Неужели не у кого не было такой задачи?

Офлайн

#4 Март 27, 2013 05:18:10

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Создание формы сложного обьекта.

django_beginner
Plan содержит список объектов Period, а Period в себе содержит список Subject
А как это у Вас организованно в моделях, можно глянуть?



Офлайн

#5 Март 27, 2013 05:25:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Создание формы сложного обьекта.

Посмотрите на django-mptt



Офлайн

#6 Март 27, 2013 11:45:03

django_beginner
Зарегистрирован: 2013-03-25
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание формы сложного обьекта.

FishHook
А как это у Вас организованно в моделях, можно глянуть?

Я пока только познаю джангу, как понимаю то модель это просто описание таблиц в бд. Типа анемичная модель домена.
Пока сделал банально):

class Event(models.Model):
    title = models.CharField(u'title', max_length=255)
    created = models.DateField(u'create')
class Subject(models.Model):
    title = models.CharField(u'title', max_length=255)
    created = models.DateField(u'create')
class Period(models.Model):
    title = models.CharField(u'title', max_length=255)
    created = models.DateField(u'create')
    count_months = models.SmallIntegerField(u'count_months')
class Plan_properties(models.Model):
    title = models.CharField(u'title', max_length=255)
    date_create = models.DateField(u'date_create')
    is_active = models.BooleanField(default=True)
class Plan_general(models.Model):
    plan_properties_id = models.ForeignKey(Plan_properties)
    period_id = models.ForeignKey(Period)
    subject_id = models.ForeignKey(Subject)
    event_id = models.ForeignKey(Event)

Просто нужно создать план на одной странице, без javascript, ajax не обойтись так как нужно будет добавлять новые или уже ранее созданные обьекты, например subject. Хотелось бы понять умеет это джанго из коробки и если нет то изобрести велосипед своими руками. Пока только в теории думаю проще сделать это передавать уже собранный план в формате json на сервер. Вроде в python есть библиотека json. Может есть еще лучше и проще варианты? … повторюсь, из коробки и своими руками)))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version