Skip to main content

A simple Django app to handle database views.

Project description

A simple pluggable application that allows to work with database views.

So far only MySQL is supported as backend, but more could be added if necessary.

Quick start

  1. Add “dbview” to your INSTALLED_APPS settings like this:

    INSTALLED_APPS = (
        ...
        'dbview',
    )
  2. 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(klass):
            '''
            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)
  3. 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.

  4. Migrate your database and start using your database views.

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

django-database-view-0.1.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

django_database_view-0.1-py2-none-any.whl (4.9 kB view details)

Uploaded Python 2

File details

Details for the file django-database-view-0.1.tar.gz.

File metadata

File hashes

Hashes for django-database-view-0.1.tar.gz
Algorithm Hash digest
SHA256 e33ce31f03569c69662f2af0ef629669a33eed7182a12d1f9f4433bf5b88ef1c
MD5 b622483e977b83c833557b31096a8e2d
BLAKE2b-256 939a42505be8e30c371efd4542ba9047335dcbe888ec13e1733c8810cd7dd880

See more details on using hashes here.

File details

Details for the file django_database_view-0.1-py2-none-any.whl.

File metadata

File hashes

Hashes for django_database_view-0.1-py2-none-any.whl
Algorithm Hash digest
SHA256 b2d17a76f15692d680b2a5293dee76799d674b77758afff60ae6a7c75340b8b9
MD5 7a1929ab3f4131ab86602bf782c477f1
BLAKE2b-256 09f544b209299a14664db0e5b421a2a35eda08ed68cfe14aa2d4e4b1bb3e73b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page