Adding package structure

master
Manuel Francisco Naranjo 2015-07-27 16:06:22 -03:00
parent 22ba22fb26
commit 02c9a9dec0
3 changed files with 84 additions and 0 deletions

46
README.rst 100644
View File

@ -0,0 +1,46 @@
====================
django-database-view
====================
A simple pluggable application that allows to work with database views.
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::
.. code-block:: python
:caption: models.py
:name: models.py
...
from dbview.models import DbView
...
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
dev 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 to match:

View File

@ -0,0 +1 @@
# placeholder for git

37
setup.py 100644
View File

@ -0,0 +1,37 @@
import os
from setuptools import setup
with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme:
README = readme.read()
# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
setup(
name='django-database-view',
version='0.1',
packages=['dbview'],
include_package_data=True,
license='MIT',
description='A simple Django app to handle database views.',
long_description=README,
url='https://github.com/manuelnaranjo/django-database-view',
author='Manuel F. Naranjo',
author_email='naranjo.manuel@gmail.com',
classifiers=[
'Environment :: Web Environment',
'Framework :: Django',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.2',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Topic :: Internet :: WWW/HTTP',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
],
)