Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » ORM, вопрос по синтаксису -> создание новой записи. [RSS Feed]

#1 Сен. 9, 2013 05:56:25

quadright
Зарегистрирован: 2013-07-26
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

ORM, вопрос по синтаксису -> создание новой записи.

Всем привет!

Сейчас есть такой код:

new = models.DB.objects.create(
    a1 = request.POST['a1'],
    a2 = request.POST['a2']
)
if request.POST['a3'] != '':
    new.a3 = request.POST['a3']
if request.POST['a4'] != '':
    new.a4 = request.POST['a4']
new.save()

В новой записи есть два обязательных поля и два необязательных, вопрос как это сделать красиво? Если необязательных полей скажем 10, не знаю как обратиться к new.'одно из полей' в теле цикла. В документации не нашел, подскажите?

Отредактировано quadright (Сен. 9, 2013 05:59:17)

Офлайн

#2 Сен. 9, 2013 09:24:33

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

ORM, вопрос по синтаксису -> создание новой записи.

for key in ['a', 'b', 'c']:
    setattr(new, key, request.POST[key])

Офлайн

#3 Сен. 9, 2013 11:32:48

quadright
Зарегистрирован: 2013-07-26
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

ORM, вопрос по синтаксису -> создание новой записи.

Благодарю, а можно перебрать ключи без явного их указания?

Офлайн

#4 Сен. 9, 2013 13:41:10

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

ORM, вопрос по синтаксису -> создание новой записи.

Перебрать все blank=True поля? Можно, но мне кажется, вы изобретаете велосипед.

Если прямо таки хотите поля беребирать, то pdb вам в помощь, исследуйте instance модели (obj = models.DB()) и выясните, как перебирать его blank=True поля, начинать исследование надо с аттрибута meta или _meta, если я ничего не путаю.

А вообще вам скорее всего нужно использовать ModelForm, она сама позаботится о заполнении нужных и ненужных полей: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform

Офлайн

  • Начало
  • » Django
  • » ORM, вопрос по синтаксису -> создание новой записи.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version