В питоне есть модуль inspect.
Можно с помощью него к примеру выбрать из произвольного модуля конкретные объекты.
А уже потом в их ограниченном наборе пытаться найти то, на что там пришел запрос извне
Для питона 2.6 что-то вроде (если формы -- классы, наследованные от ModelForm)
from inspect import getmembers, isclass
def check_subclass(cls):
def parent_check(obj):
if isclass(obj) and not obj == cls:
return issubclass(obj, cls)
return parent_check
module_name = 'myforms'
forms = {}
[forms.update({cls_name: cls})\
for cls_name, cls in getmembers(sys.modules[module_name], check_subclass(ModelForm))]
def view(request, form_name):
form = forms.get(form_name, None)
Подскажите, пожалуйста, как лучше поступить.в запросе передаются параметры. допустимurl(r'^(?P<form_name>\w+)/$', 'views.view')def view(request, form_name):'''Теперь здесь хотелось бы зарегистрировать (инициализировать) форму. Хотелось бы без getattr с его проверками...Если нет в django встроенных register или что нибудь подобного, то подскажите какой метод наиболее безболезненный.'''
Комментариев нет:
Отправить комментарий