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.DbView like this:

    from django.db import models
    from dbview 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 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.3.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

django_database_view-0.1.3-py2-none-any.whl (10.6 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for django-database-view-0.1.3.tar.gz
Algorithm Hash digest
SHA256 49abcda91ce025dd01df73bcd98768cb865f9c18f70b15431d10be9c74c232a8
MD5 9049d2504c5976460c933c4b56b3f2d1
BLAKE2b-256 bbd3066637d0b02a9c25c14e0c251bfc5b21ae919a37042580d62a642459a966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_database_view-0.1.3-py2-none-any.whl
Algorithm Hash digest
SHA256 1c289accf23a9a2d3f0fa83d69d3c140595badc1c7a86d651be2031434c47ada
MD5 f39e90be9c5ecdb626dae853aebefea9
BLAKE2b-256 760f7161f9615129e95999ed0a5479caabab155323769e9147122d90eeabc254

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