Найти - Пользователи
Полная версия: ORM, вопрос по синтаксису -> создание новой записи.
Начало » Django » ORM, вопрос по синтаксису -> создание новой записи.
1
quadright
Всем привет!

Сейчас есть такой код:
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.'одно из полей' в теле цикла. В документации не нашел, подскажите?
lorien
for key in ['a', 'b', 'c']:
    setattr(new, key, request.POST[key])
quadright
Благодарю, а можно перебрать ключи без явного их указания?
lorien
Перебрать все blank=True поля? Можно, но мне кажется, вы изобретаете велосипед.

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

А вообще вам скорее всего нужно использовать ModelForm, она сама позаботится о заполнении нужных и ненужных полей: https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB