MongoEngine model backend implementation.
MongoEngine model scaffolding.
Class inherits configuration options from BaseModelView and they’re not displayed here.
Collection of the column filters.
Can contain either field names or instances of flask.ext.admin.contrib.mongoengine.filters.BaseFilter classes.
For example:
class MyModelView(BaseModelView):
column_filters = ('user', 'email')
or:
class MyModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name'))
Customized type formatters for MongoEngine backend
Field to filter converter.
Override this attribute to use a non-default converter.
Model form conversion class. Use this to implement custom field conversion logic.
Custom class should be derived from the flask.ext.admin.contrib.mongoengine.form.CustomModelConverter.
For example:
class MyModelConverter(AdminModelConverter):
pass
class MyAdminView(ModelView):
model_form_converter = MyModelConverter
List of allowed search field types.
Subdocument configuration options.
This field accepts dictionary, where key is field name and value is either dictionary or instance of the flask.ext.admin.contrib.EmbeddedForm.
Consider following example:
class Comment(db.EmbeddedDocument):
name = db.StringField(max_length=20, required=True)
value = db.StringField(max_length=20)
class Post(db.Document):
text = db.StringField(max_length=30)
data = db.EmbeddedDocumentField(Comment)
class MyAdmin(ModelView):
form_subdocuments = {
'data': {
'form_columns': ('name',)
}
}
In this example, Post model has child Comment subdocument. When generating form for Comment embedded document, Flask-Admin will only create name field.
It is also possible to use class-based embedded document configuration:
class CommentEmbed(EmbeddedForm):
form_columns = ('name',)
class MyAdmin(ModelView):
form_subdocuments = {
'data': CommentEmbed()
}
Arbitrary depth nesting is supported:
class SomeEmbed(EmbeddedForm):
form_excluded_columns = ('test',)
class CommentEmbed(EmbeddedForm):
form_columns = ('name',)
form_subdocuments = {
'inner': SomeEmbed()
}
class MyAdmin(ModelView):
form_subdocuments = {
'data': CommentEmbed()
}
There’s also support for forms embedded into ListField. All you have to do is to create nested rule with None as a name. Even though it is slightly confusing, but that’s how Flask-MongoEngine creates form fields embedded into ListField:
class Comment(db.EmbeddedDocument):
name = db.StringField(max_length=20, required=True)
value = db.StringField(max_length=20)
class Post(db.Document):
text = db.StringField(max_length=30)
data = db.ListField(db.EmbeddedDocumentField(Comment))
class MyAdmin(ModelView):
form_subdocuments = {
'data': {
'form_subdocuments': {
None: {
'form_columns': ('name',)
}
}
}
}
Mass-model action view.
Perform some actions after a model was created or updated and committed to the database.
Called from create_model after successful database commit.
By default does nothing.
Parameters: |
|
---|
List of allowed search field types.
Create Flask blueprint.
Instantiate model creation form and return it.
Override to implement custom behavior.
Create model helper
Parameters: | form – Form instance |
---|
Create model view
Delete model helper
Parameters: | model – Model instance |
---|
Delete model view. Only POST method is allowed.
Instantiate model editing form and return it.
Override to implement custom behavior.
Edit model view
Return a list and a dictionary of allowed actions.
Return a human-readable column name.
Parameters: | field – Model field name. |
---|
Create form class for model creation view.
Override to implement customized behavior.
Create form class for model editing view.
Override to implement customized behavior.
Given a filter flt, return a unique name for that filter in this view.
Does not include the flt[n]_ portion of the filter name.
Parameters: |
|
---|
Return a list of filter objects.
If your model backend implementation does not support filters, override this method and return None.
Get form class.
If self.form is set, will return it and will call self.scaffold_form otherwise.
Override to implement customized behavior.
Get list of objects from MongoEngine
Parameters: |
|
---|
Returns a list of the model field names. If column_list was set, returns it. Otherwise calls scaffold_list_columns to generate the list from the model.
Returns the value to be displayed in the list view
Parameters: |
|
---|
Return a single model instance by its ID
Parameters: | id – Model ID |
---|
Return the primary key value from the model instance
Parameters: | model – Model instance |
---|
Returns the QuerySet for this view. By default, it returns all the objects for the current model.
Returns a dictionary of the sortable columns. Key is a model field name and value is sort column (for example - attribute).
If column_sortable_list is set, will use it. Otherwise, will call scaffold_sortable_columns to get them from the model.
Generate URL for the endpoint. If you want to customize URL generation logic (persist some query string argument, for example), this is right place to do it.
Parameters: |
|
---|
Handle action request.
Parameters: | return_view – Name of the view to return to after the request. If not provided, will return user to the index view. |
---|
Postprocess (add joins, etc) for a filter.
Parameters: | filter – Filter object to postprocess |
---|
Handle the response to inaccessible views.
By default, it throw HTTP 403 error. Override this method to customize the behaviour.
List view
Initialize list of actions for the current administrative view.
Init search
Override this method to add permission checks.
Flask-Admin does not make any assumptions about the authentication system used in your application, so it is up to you to implement it.
By default, it will allow access for everyone.
Verify if column is sortable.
Parameters: | name – Column name. |
---|
Validate if the provided filter is a valid MongoEngine filter
Parameters: | filter – Filter object |
---|
Override this method if you want dynamically hide or show administrative views from Flask-Admin menu structure
By default, item is visible in menu.
Please note that item should be both visible and accessible to be displayed in menu.
Model form conversion class. Use this to implement custom field conversion logic.
Custom class should be derived from the flask.ext.admin.contrib.mongoengine.form.CustomModelConverter.
For example:
class MyModelConverter(AdminModelConverter):
pass
class MyAdminView(ModelView):
model_form_converter = MyModelConverter
alias of CustomModelConverter
Mongodb _id value conversion function. Default is bson.ObjectId. Use this if you are using String, Binary and etc.
For example:
class MyModelView(BaseModelView):
object_id_converter = int
or:
class MyModelView(BaseModelView):
object_id_converter = str
alias of ObjectId
Perform additional actions to pre-fill the edit form.
Called from edit_view, if the current action is rendering the form rather than receiving client side input, after default pre-filling has been performed.
By default does nothing.
You only need to override this if you have added custom fields that depend on the database contents in a way that Flask-admin can’t figure out by itself. Fields that were added by name of a normal column or relationship should work out of the box.
Parameters: |
|
---|
Perform some actions after a model is created or updated.
Called from create_model and update_model in the same transaction (if it has any meaning for a store backend).
By default does nothing.
Parameters: |
|
---|
Perform some actions before a model is deleted.
Called from delete_model in the same transaction (if it has any meaning for a store backend).
By default do nothing.
Render template
Parameters: |
|
---|
Return filter object(s) for the field
Parameters: | name – Either field name or field instance |
---|
Create form from the model.
Scaffold list columns
Return a dictionary of sortable columns (name, field)
Update model helper
Parameters: |
|
---|
Validate the form on submit.
Parameters: | form – Form to validate |
---|