django-ipyfield est une application Django qui fournit un champ de modèle pour Django qui permet le stockage & nbsp; d'une adresse IP en tant que BigInt sur le côté de db en utilisant l'API pour gérer la conversion à une instance IPy.IP (ou aucune) du côté de python.
Wut?
À sa manière, il nous donne un moyen de stocker à la fois IPv4 et IPv6 toujours sans avoir à les jeter dans de longues charfields. En outre, il nous donne un moyen facile de valider les données comme il arrive, tout en nous donnant accès à l'information méta supplémentaire (essentiellement de tout ce qui fait l'API si impressionnant).
Installation
Ajoutez-le à votre projet de django en installant avec pip:
pip installer django-ipyfield
ou easy_install:
easy_install django-ipyfield
Utilisation
Dans vos modèles, faire quelque chose comme ce qui suit:
à partir de modèles django.db d'importation
de ipyfield.models importer IPyField
MyModel de classe (models.Model):
& Nbsp; # les params réguliers devraient fonctionner assez bien ici
& Nbsp; ipaddr = IPyField ()
& Nbsp; # ... et ainsi de suite
De là, toutes les affectations à obj.ipaddr peuvent être considérées comme un argument de constructeur pour une nouvelle instance IPy.IP. Tout IP () peut utiliser pour faire un nouvel objet peut être utilisé.
Lors de requêtes, je ai ajouté une pièce supplémentaire de sucre syntaxique. Pour __in (extrêmes) les recherches, vous pouvez passer une plage d'adresses de notation CIDR, par exemple:
MyModel.objects.filter (ipaddr__in = '10 .0.0.0 / 24 ')
Actuellement, vous devez utiliser cette forme de notation en charge pour ce type de requête. Pour l'instant, si vous devez utiliser une notation de style préfixe-masque, le transmettre à vous IPy.IP et utiliser l'instance résultant que votre paramètre de filtre.
Ce qui est nouveau dans cette version:.
- Ajout du support pour gt, gîte, LT et recherches LTE
Quoi de neuf dans la version 0.1.4:
- instance IPy.IP soulève exception par rapport à un instance non-IP. Cela devient un problème lorsque vous entrez dans la validation de ModelForm (ne est pas venu quand en utilisant uniquement l'ORM) en ce qui concerne les valeurs vides / nulles.
Exigences :
- Python
- Django
Commentaires non trouvées