Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 7, 2008 13:13:28

botr
От:
Зарегистрирован: 2008-10-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько одинаковых полей

Доброго дня!

Понадобилось мне реализовать несколько одинаковых полей для загрузки файлов на сервер. Пишу форму

img1 = forms.ImageFile(required = False, label = "1")
img2 = forms.ImageFile(required = False, label = "2")
img3 = forms.ImageFile(required = False, label = "3")
также надо сделать одинаковую проверку для каждого clean_img1, clean_img2, clean_img3

Вопрос следующий. Можно ли как то этот код уменьшить, имеется в виду не писать так img1, img2, img3 и clean_img1, clean_img2, clean_img3?



Офлайн

#2 Окт. 7, 2008 13:49:19

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Несколько одинаковых полей

class Form(forms.Form):
#...

def generic_clean(instance, name):
value = instance.cleaned_data[name]
#...

for i in range(1, 4):
name = "img%s" % i
Form.base_fields[name] = forms.ImageFile(required = False, label = "%s" % i)
setattr(Form, "clean_%s" % name, lambda self: generic_clean(self, name)



Офлайн

#3 Окт. 7, 2008 22:36:50

botr
От:
Зарегистрирован: 2008-10-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько одинаковых полей

Daevaorn, спасибо. А как эти все эти img поля выводить вместе в шаблоне без form.as_p и form.as_table?



Офлайн

#4 Окт. 8, 2008 16:42:08

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Несколько одинаковых полей

botr
А как эти все эти img поля выводить вместе в шаблоне без form.as_p и form.as_table?
Лучше написать для формы специальный метод, который их будет выводить вместе.



Офлайн

#5 Окт. 8, 2008 22:38:34

botr
От:
Зарегистрирован: 2008-10-07
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько одинаковых полей

Daevaorn
спасибо, наверное так и поступлю.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version