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.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for django-database-view-0.1.1.tar.gz
Algorithm Hash digest
SHA256 81a0269a5cd0a61dd05c071cdaaee7dba9dce3672510631b2034c69a8a95bcf2
MD5 44ad57ab3d6672b40b654c1ebf3e669f
BLAKE2b-256 e2a0628d8973faf1de2d7131346b7b6c84ea55131ae1112b6e094e315901118f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_database_view-0.1.1-py2-none-any.whl
Algorithm Hash digest
SHA256 058d1852d99e8a7bb67ca77cefefeaa5069d474fb8c314daec60eea7cc01fafb
MD5 730469e7bb921a93f11d4acf3d0c9e17
BLAKE2b-256 fa8c76788f673e759ec4b01c1049244c27fee6b9d81257a782b0560d8f5c5b5a

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