Adding package structure
parent
22ba22fb26
commit
02c9a9dec0
|
|
@ -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:
|
||||
|
|
@ -0,0 +1 @@
|
|||
# placeholder for git
|
||||
|
|
@ -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',
|
||||
],
|
||||
)
|
||||
Loading…
Reference in New Issue