本文整理汇总了Python中wtfpeewee.orm.model_form函数的典型用法代码示例。如果您正苦于以下问题:Python model_form函数的具体用法?Python model_form怎么用?Python model_form使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了model_form函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_form
def get_form(
model,
converter,
base_class=form.BaseForm,
only=None,
exclude=None,
field_args=None,
allow_pk=False,
extra_fields=None,
):
"""
Create form from peewee model and contribute extra fields, if necessary
"""
result = model_form(
model,
base_class=base_class,
only=only,
exclude=exclude,
field_args=field_args,
allow_pk=allow_pk,
converter=converter,
)
if extra_fields:
for name, field in iteritems(extra_fields):
setattr(result, name, form.recreate_field(field))
return result
示例2: __new__
def __new__(mcs, name, bases, params):
""" Prepare handler params. """
model = params.get('model')
params.setdefault('name', model and model._meta.db_table.lower() or name.lower())
cls = super(PWRESTHandlerMeta, mcs).__new__(mcs, name, bases, params)
if not cls.form and cls.model and model_form:
cls.form = model_form(cls.model, base_class=Form, **cls.form_meta)
return cls
示例3: get_context
def get_context(self):
form_cls = model_form(User, exclude=('password_hash'))
if request.method == 'POST':
form = form_cls(request.form)
else:
form = form_cls(obj=current_user)
return form
示例4: test_defaults
def test_defaults(self):
BlogFormDef = model_form(Blog, field_args={'title': {'default': 'hello world'}})
form = BlogFormDef()
self.assertEqual(form.data, {'title': 'hello world'})
form = BlogFormDef(obj=self.blog_a)
self.assertEqual(form.data, {'title': 'a'})
示例5: get_form
def get_form(self, adding=False):
allow_pk = adding and not self.model._meta.auto_increment
return model_form(self.model,
allow_pk=allow_pk,
only=self.fields,
exclude=self.exclude,
converter=self.form_converter(self),
)
示例6: contribute_inline
def contribute_inline(model, form_class, inline_models):
# Contribute columns
for p in inline_models:
# Figure out settings
if isinstance(p, tuple):
info = InlineFormAdmin(p[0], **p[1])
elif isinstance(p, InlineFormAdmin):
info = p
elif isinstance(p, BaseModel):
info = InlineFormAdmin(p)
else:
raise Exception('Unknown inline model admin: %s' % repr(p))
# Find property from target model to current model
reverse_field = None
for field in info.model._meta.get_fields():
field_type = type(field)
if field_type == ForeignKeyField:
if field.to == model:
reverse_field = field
break
else:
raise Exception('Cannot find reverse relation for model %s' % info.model)
# Remove reverse property from the list
ignore = [reverse_field.name]
if info.excluded_form_columns:
exclude = ignore + info.excluded_form_columns
else:
exclude = ignore
# Create field
converter = CustomModelConverter()
child_form = model_form(info.model,
base_class=form.BaseForm,
only=info.form_columns,
exclude=exclude,
field_args=info.form_args,
allow_pk=True,
converter=converter)
prop_name = 'fa_%s' % model.__name__
setattr(form_class,
prop_name,
InlineModelFormList(child_form,
info.model,
reverse_field.name,
label=info.model.__name__))
setattr(field.to,
prop_name,
property(lambda self: self.id))
return form_class
示例7: login
def login():
next_url = request.args.get('next') or request.form.get('next')
LoginForm = model_form(User, exclude=('join_date',))
form = LoginForm()
if request.method == 'POST' and request.form['username']:
try:
user = User.get(
username=request.form['username'],
password=md5((request.form['password']).encode('utf-8')).hexdigest())
except User.DoesNotExist:
errors = "Неверное имя пользователя или пароль. Повторите попытку"
return render_template('acc/login.html', form=form, next=next_url, error_message=errors)
else:
auth_user(user)
return redirect(next_url) # or url_for('group.groups_list'))
LoginForm = model_form(User, exclude=('join_date',))
form = LoginForm()
return render_template('acc/login.html', form=form, next=next_url)
示例8: test_duplicate_validators
def test_duplicate_validators(self):
''' Test whether validators are duplicated when forms share field_args
'''
shared_field_args = {'id': {'validators': [Regexp('test')]}}
ValueIncludedForm = model_form(NonIntPKModel,
field_args=shared_field_args,
allow_pk=True)
ValueExcludedForm = model_form(NonIntPKModel,
field_args=shared_field_args,
allow_pk=True,
exclude=['value'])
value_included_form = ValueIncludedForm()
self.assertEqual(len(value_included_form.id.validators), 2)
value_excluded_form = ValueExcludedForm()
self.assertEqual(len(value_excluded_form.id.validators), 2)
示例9: stud_delete
def stud_delete(stud_id, group_id):
stud = get_object_or_404(Stud, Stud.id == stud_id)
try:
stud.delete_instance()
return redirect(url_for('group.studs_list',
group_id=group_id))
except Exception as e:
StudForm = model_form(Stud)
form = StudForm(obj=stud)
return render_template('students/stud_form.html',
form=form, stud=stud, error_message=e)
示例10: group_create
def group_create():
GroupForm = model_form(Group)
group = Group()
if request.method == 'POST':
form = GroupForm(request.form, obj=group)
if form.validate():
form.populate_obj(group)
group.save()
return redirect(url_for('group.groups_list'))
else:
form = GroupForm(obj=group)
return render_template('groups/group_form.html', form=form)
示例11: scaffold_form
def scaffold_form(self):
form_class = model_form(self.model,
base_class=form.BaseForm,
only=self.form_columns,
exclude=self.excluded_form_columns,
field_args=self.form_args,
converter=CustomModelConverter())
if self.inline_models:
form_class = contribute_inline(self.model, form_class, self.inline_models)
return form_class
示例12: contribute
def contribute(self, converter, model, form_class, inline_model):
# Find property from target model to current model
reverse_field = None
info = self.get_info(inline_model)
for field in info.model._meta.get_fields():
field_type = type(field)
if field_type == ForeignKeyField:
if field.rel_model == model:
reverse_field = field
break
else:
raise Exception('Cannot find reverse relation for model %s' % info.model)
# Remove reverse property from the list
ignore = [reverse_field.name]
if info.form_excluded_columns:
exclude = ignore + info.form_excluded_columns
else:
exclude = ignore
# Create field
child_form = info.get_form()
if child_form is None:
child_form = model_form(info.model,
base_class=form.BaseForm,
only=info.form_columns,
exclude=exclude,
field_args=info.form_args,
allow_pk=True,
converter=converter)
prop_name = 'fa_%s' % model.__name__
label = self.get_label(info, prop_name)
setattr(form_class,
prop_name,
self.inline_field_list_type(child_form,
info.model,
reverse_field.name,
info,
label=label or info.model.__name__))
setattr(field.rel_model,
prop_name,
property(lambda self: self.id))
return form_class
示例13: scaffold_form
def scaffold_form(self):
form_class = model_form(self.model,
base_class=form.BaseForm,
only=self.form_columns,
exclude=self.form_excluded_columns,
field_args=self.form_args,
converter=self.model_form_converter())
if self.inline_models:
form_class = self.scaffold_inline_form_models(form_class)
return form_class
示例14: group_edit
def group_edit(group_id):
GroupForm = model_form(Group)
group = get_object_or_404(Group, Group.id == group_id)
if request.method == 'POST':
form = GroupForm(request.form, obj=group)
if form.validate():
form.populate_obj(group)
group.save()
return redirect(url_for('group.groups_list'))
else:
form = GroupForm(obj=group)
form.starosta.query = Stud.filter(cgroup=group)
return render_template('groups/group_form.html', form=form, group=group)
示例15: stud_edit
def stud_edit(stud_id, group_id):
StudForm = model_form(Stud, field_args={'dbirthday': dict(format='%d.%m.%Y')})
stud = get_object_or_404(Stud, Stud.id == stud_id)
if request.method == 'POST':
form = StudForm(request.form, obj=stud)
if form.validate():
form.populate_obj(stud)
stud.save()
return redirect(url_for('group.studs_list',
group_id=group_id))
else:
form = StudForm(obj=stud)
return render_template('students/stud_form.html',
form=form, stud=stud, group_id=group_id)