The QDjangoModel class is the base class for all models. 
To declare your own model, create a class which inherits QDjangoModel and declare the database fields as properties using the Q_PROPERTY macro. You must then register the class with QDjango using QDjango::registerModel().
You can provide options for the model using the Q_CLASSINFO macro as follows:
Q_CLASSINFO("__meta__", "keyword1=value1 .. keywordN=valueN")
The following keywords are recognised for model options:
- db_tableif provided, this is the name of the database table for the model, otherwise the lowercased class name will be used
- unique_togetherset of fields that, taken together, must be unique. If provided, a UNIQUE statement is included in the CREATE TABLE statement. Example:- unique_together=some_field,other_field
You can also provide additional information about a field using the Q_CLASSINFO macro, in the form:
Q_CLASSINFO("field_name", "keyword1=value1 .. keywordN=valueN")
The following keywords are recognised for field options:
- auto_incrementif set to 'true', and if this field is the primary key, it will be marked as auto-increment.
- blankif set to 'true', this field is allowed to be empty.
- db_columnif provided, this is the name of the database column for the field, otherwise the field name will be used
- db_indexif set to 'true', an index will be created on this field.
- ignore_fieldif set to 'true', this field will be ignored
- max_lengththe maximum length of the field (used when creating the database table)
- nullif set to 'true', empty values will be stored as NULL. The default value is 'false'.
- primary_keyif set to 'true', this field will be used as the primary key. If no primary key is explicitly defined, an auto-increment integer field will be added.
- uniqueif set to 'true', this field must be unique throughout the table.
- on_deleteif provided, create a foreign key constraint on this field. Accepted values are: 'cascade', 'restrict', and 'set_null'