Найти - Пользователи
Полная версия: Несколько одинаковых полей
Начало » Django » Несколько одинаковых полей
1
botr
Доброго дня!

Понадобилось мне реализовать несколько одинаковых полей для загрузки файлов на сервер. Пишу форму
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?
Александр Кошелев
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)
botr
Daevaorn, спасибо. А как эти все эти img поля выводить вместе в шаблоне без form.as_p и form.as_table?
Александр Кошелев
botr
А как эти все эти img поля выводить вместе в шаблоне без form.as_p и form.as_table?
Лучше написать для формы специальный метод, который их будет выводить вместе.
botr
Daevaorn
спасибо, наверное так и поступлю.
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