Proper CIDR fields for Django running on any database
Project description
cidrfield provides a model field for django that allows the storage of an ip network on the db side by using ipaddress to handle conversion to an ipaddress.ip_network instance (or None) on the python side. It supports the use of __contains and __in to query the IP network that contain and belong to.
Installation
Add this to your django project by installing with pip:
pip install django-cidrfield
Usage
In your models, do something like the following:
from django.db import models from cidrfield.models import IPNetworkField class MyModel(models.Model): # the regular params should work well enough here ip_network = IPNetworkField() # ... and so on
Then you can store a ip network like the following:
MyModel(ip_network='192.168.1.0/24').save()
And you can query a ip network like the following:
MyModel.objects.filter(ip_network='192.168.1.0/24') MyModel.objects.filter(ip_network__contains='192.168.1.1') MyModel.objects.filter(ip_network__in='192.168.0.0/16') MyModel.objects.filter(ip_network__in=['192.168.0.0/16', '10.10.0.0/16'])
If you use DjangoQL, you can use CIDRQLSchema like the following:
from django.contrib import admin from djangoql.admin import DjangoQLSearchMixin from cidrfield.schemas import CIDRQLSchema from .models import MyModel @admin.register(MyModel) class MyModelAdmin(DjangoQLSearchMixin, admin.ModelAdmin): list_display = ['ip_network'] search_fields = ('ip_network', ) djangoql_schema = CIDRQLSchema
Changelog
0.2.0
Add support for Djangoql.
Fixed the bug about __in query not supporting array.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-cidrfield-0.2.0.tar.gz
.
File metadata
- Download URL: django-cidrfield-0.2.0.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d367abca917c26f6e3f7008bfe50dc7d664644c7457dad1253b9497cb760fb83 |
|
MD5 | fa4b7fda01dc9627fe87cec3c8d9187f |
|
BLAKE2b-256 | 414b3fe740fd379c830ef23e1489ba43c3b89d26cfddc08551c9124567222d92 |
File details
Details for the file django_cidrfield-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: django_cidrfield-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94e7968fb0977eb206f5eca03ffcd09b579ffca2b89aa574d590e247444f9971 |
|
MD5 | e0a6f4333b7d9cc9caa6e0936686525e |
|
BLAKE2b-256 | dfb8e909ea3808b7e5dd3a28a5497cb18d31f46bfaedacdd2e1c4db002b3b20a |