本文整理汇总了Python中forms.Form.set_obj方法的典型用法代码示例。如果您正苦于以下问题:Python Form.set_obj方法的具体用法?Python Form.set_obj怎么用?Python Form.set_obj使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类forms.Form
的用法示例。
在下文中一共展示了Form.set_obj方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: BaseCrud
# 需要导入模块: from forms import Form [as 别名]
# 或者: from forms.Form import set_obj [as 别名]
class BaseCrud(object):
def __init__(self, name, **kwargs):
super(BaseCrud, self).__init__()
self.name=name
self.pk_type='int'
self.navigation_hint=name+'.list'
self.form=[]
self.label=name.capitalize()
self.url='/{0}/'.format(name)
self.parent=None
self.labels={}
self.list_columns=[]
self.form=Form()
self.collection=None
if 'pk_type' in kwargs: self.pk_type=kwargs['pk_type']
if 'navigation_hint' in kwargs: self.navigation_hint=kwargs['navigation_hint']
if 'label' in kwargs: self.label=kwargs['label']
if 'url' in kwargs: self.url=kwargs['url']
if 'labels' in kwargs: self.labels=kwargs['labels']
if 'list_columns' in kwargs:
self.list_columns=create_columns(kwargs['list_columns'])
if 'form' in kwargs:
self.form=create_form(kwargs['form'],self.labels)
def list(self):
context = self.__get_context()
context['rows']=self.collection.list()
return self.render('list', context)
def view(self, id):
obj=self.collection.find(self.pk_prop,id)
context = self.__get_context()
context['obj']=obj
return 'view '+str(id)+' '+str(context)
def edit(self, id):
obj=self.collection.find(self.pk_prop,id)
context = self.__get_context()
context['obj']=obj
context['form']=self.form
context['form_data']=self.form.form_data(obj)
if request.method == 'POST':
data=self.form.form_data(request.form)
errors=self.form.validate(data)
if not errors:
self.form.set_obj(request.form, obj)
self.collection.update(obj)
flash('<strong>{name}</strong> updated!'.format(name=self.get_label(obj)))
return redirect(url_for('%s.list' % self.name, id=id))
else:
context['form_data']=data
context['form_errors']=errors
return self.render('edit', context)
def delete(self, id):
obj=self.collection.find(self.pk_prop,id)
context = self.__get_context()
context['obj']=obj
self.collection.delete(obj)
flash('<strong>{name}</strong> deleted!'.format(name=self.get_label(obj)))
return redirect(url_for('%s.list' % self.name))
def new(self):
obj=self.collection.new_object()
context = self.__get_context()
context['obj']=obj
context['form']=self.form
context['form_data']=self.form.form_data(obj)
if request.method == 'POST':
data=self.form.form_data(request.form)
errors=self.form.validate(data)
if not errors:
self.form.set_obj(request.form, obj)
self.collection.save(obj)
flash('<strong>{name}</strong> created!'.format(name=self.get_label(obj)))
return redirect(url_for('%s.list' % self.name))
else:
context['form_data']=data
context['form_errors']=errors
return self.render('new', context)
def __get_context(self):
ctx= { 'crud_name':self.name, 'crud':self }
if self.parent:
ctx['app']=self.parent
if self.navigation_hint:
ctx['navigation_hint']=self.navigation_hint
return ctx
#.........这里部分代码省略.........