A simple pluggable application that allows to work with database views.
Quick start
Install the package:
pip install django-database-models
In your models.py create classes which extend dbview.models.DbView like this:
from django.db import models from dbview.models import DbView class ModelA(models.Model): fielda = models.CharField() fieldc = models.IntegerField() class MyView(DbView): fieldA = models.OneToOneField(ModelA, primary_key=True, db_column='fielda__id') fieldB = models.IntegerField(blank=True, null=True, db_column='fieldb') @classmethod def view(cls): """ This method returns the SQL string that creates the view, in this example fieldB is the result of annotating another column """ qs = modelA.objects.all( ).annotate( fieldb=models.Sum('fieldc'), ).annotate( fielda__id=models.F('pk'), ).order_by( 'fielda__id', ).values( 'fielda__id', 'fieldb', ) return str(qs.query)Alternatively get_view_str method could be used to write a custom SQL:
class MyView(DbView): # ... @classmethod def get_view_str(cls): return """ CREATE VIEW my_view AS ( SELECT ... )"""Then create a migration point for your view generation, edit that migration and modify it, add: from dbview.helpers import CreateView and replace the line the call to migrations.CreateModel with CreateView.
Migrate your database and start using your database views.
Release files for django-database-view 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-database-view-0.2.1.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_database_view-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.4 kB
Release files / django-database-view-0.2.1.tar.gz
| Download URL | django-database-view-0.2.1.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
092a57a33ff22b48275b81689621f2cd738505024b20b118683ec34f96668b2e
|
|
BLAKE2b-256 checksum How to use checksums |
1a1ec08a49a337a61ae430d7c6b6b863cf0a4aee0b55a35879ba5833ce2a75d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.6
|
Release files / django_database_view-0.2.1-py3-none-any.whl
| Download URL | django_database_view-0.2.1-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
38442feb42efa3781e18ba846fab44cd90803e43a0a7239c8d34bdc1d5cf7089
|
|
BLAKE2b-256 checksum How to use checksums |
43725e0775980edf680d2f33d68d4e2d2faeeb81d0741608fbfb71f745fb60dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.6
|