An implementation of django forms using mongoengine.
Project description
This is an implementation of django’s model forms for mongoengine documents.
Requirements
Django >= 1.3
mongoengine >= 0.6
Usage
mongodbforms supports forms for normal documents and embedded documents.
Normal documents
To use mongodbforms with normal documents replace djangos forms with mongodbform forms.
from mongodbforms import DocumentForm class BlogForm(DocumentForm) ...
Embedded documents
For embedded documents use EmbeddedDocumentForm. The Meta-object of the form has to be provided with an embedded field name. The embedded object is appended to this. The form constructor takes an additional argument: The document the embedded document gets added to.
If the form is saved the new embedded object is automatically added to the provided parent document. If the embedded field is a list field the embedded document is appended to the list, if it is a plain embedded field the current object is overwritten. Note that the parent document is not saved.
# forms.py from mongodbforms import EmbeddedDocumentForm class MessageForm(EmbeddedDocumentForm): class Meta: document = Message embedded_field_name = 'messages' fields = ['subject', 'sender', 'message',] # views.py form = MessageForm(parent_document=some_document, ...)
Documentation
In theory the documentation Django’s modelform documentation should be all you need (except for one exception; read on). If you find a discrepancy between something that mongodbforms does and what Django’s documentation says, you have most likely found a bug. Please report it.
Form field generation
Because the fields on mongoengine documents have no notion of form fields every mongodbform uses a generator class to generate the form field for a db field, which is not explicitly set.
If you want to use your own generator class you can use the formfield_generator option on the form’s Meta class.
# generator.py from mongodbforms.fieldgenerator import MongoFormFieldGenerator class MyFieldGenerator(MongoFormFieldGenerator): ... # forms.py from mongodbforms import DocumentForm from generator import MyFieldGenerator class MessageForm(DocumentForm): class Meta: formfield_generator = MyFieldGenerator
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file mongodbforms-0.1.5.tar.gz
.
File metadata
- Download URL: mongodbforms-0.1.5.tar.gz
- Upload date:
- Size: 18.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3bf9826e794b754267e4ee719229b706d5b68f2383126d5534911fdfe5617df |
|
MD5 | 485645ad5e1eb11368ee7f94e362e923 |
|
BLAKE2b-256 | 443550abc778983d4de1113e3a1d6c4d7e213ad9d1b97d587837fb668459d018 |