File: models.py

package info (click to toggle)
flask-mongoengine 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 508 kB
  • sloc: python: 2,127; makefile: 109
file content (23 lines) | stat: -rw-r--r-- 718 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from flask_wtf import FlaskForm
from flask_wtf.form import _Auto


class ModelForm(FlaskForm):
    """A WTForms mongoengine model form"""

    def __init__(self, formdata=_Auto, **kwargs):
        self.instance = kwargs.pop("instance", None) or kwargs.get("obj")
        if self.instance and not formdata:
            kwargs["obj"] = self.instance
        self.formdata = formdata
        super(ModelForm, self).__init__(formdata, **kwargs)

    def save(self, commit=True, **kwargs):
        if self.instance:
            self.populate_obj(self.instance)
        else:
            self.instance = self.model_class(**self.data)

        if commit:
            self.instance.save(**kwargs)
        return self.instance