Metadata-Version: 1.0
Name: django-ipyfield
Version: 0.1.3
Summary: IPy.IP instances with BigInt storage for django models
Home-page: https://bitbucket.org/onelson/django-ipyfield/
Author: Owen Nelson
Author-email: onelson@gmail.com
License: MIT
Description: .. -*- restructuredtext -*-
        
        django-ipyfield
        ===============
        
        ``ipyfield`` provides a model field for 
        `django <https://www.djangoproject.com>`_
        that allows the storage of an ip address as a ``BigInt`` on the db side by 
        using `IPy <http://pypi.python.org/pypi/IPy/>`_ to handle 
        conversion to an ``IPy.IP`` instance (or ``None``) on the python side. 
        
        Wut?
        ----
        
        In its way, it gives us a way to store both **ipv4** and **ipv6** consistently
        without having to throw them in long charfields. Also, it gives us an easy way
        to validate data as it comes in, while giving us access to additional meta
        information (basically everything that makes 
        `IPy <http://pypi.python.org/pypi/IPy/>`_ so awesome).
        
        
        Installation
        ------------
        
        Add this to your django project by installing with ``pip``: ::
            
            pip install django-ipyfield
        
        or with ``easy_install``: ::
        
            easy_install django-ipyfield
        
        
        
        Usage
        -----
        
        In your models, do something like the following: ::
            
            from django.db import models
            from ipyfield.models import IPyField
        
            class MyModel(models.Model):
        
                # the regular params should work well enough here
                ipaddr = IPyField()
                # ... and so on
        
        
        From here, any assignments to ``obj.ipaddr`` can be considered a constructor
        argument to a new ``IPy.IP`` instance. Anything ``IP()`` can use to make a new
        object can be used.
        
        When making queries, I added one extra piece of syntactical sugar. For 
        ``__in`` (range) lookups, you can pass a **CIDR** notation address range, for 
        example: ::
            
            MyModel.objects.filter(ipaddr__in='10.0.0.0/24')
        
        Currently you need to use this form of notation supported for this kind of 
        query. For now, if you need to use a ``prefix-netmask`` style notation, pass it 
        to ``IPy.IP`` yourself and use the resulting instance as your filter parameter.
        
        
        
Keywords: ip,models,django
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
