django-ipyfield er en Django app som gir en modell felt for Django som gjør at lagrings & nbsp; av en ip-adresse som en BIGINT på db side ved hjelp av IPY å håndtere konvertering til et IPy.IP forekomst (eller Ingen) på python side.
Wut?
På sin måte, det gir oss en måte å lagre både IPv4 og IPv6 konsekvent uten å måtte kaste dem i lange charfields. Også, det gir oss en enkel måte å validere data som det kommer inn, samtidig som det gir oss tilgang til ytterligere metainformasjon (i utgangspunktet alt som gjør Polaråret så awesome).
Installasjon
Legg dette til din django prosjektet ved å installere med pip:
PIP installere django-ipyfield
eller med easy_install:
easy_install Django-ipyfield
Bruk
I modellene, gjøre noe som følgende:
fra django.db importmodeller
fra ipyfield.models importere IPyField
klasse MyModel (models.Model):
& Nbsp; # de vanlige params skal fungere godt nok her
& Nbsp; IPaddr = IPyField ()
& Nbsp; # ... og så videre
Herfra kan eventuelle oppdrag til obj.ipaddr bli betraktet som en konstruktør argument til en ny IPy.IP eksempel. Noe IP () kan bruke til å lage et nytt objekt kan brukes.
Når du gjør søk, la jeg ett ekstra stykke syntaktisk sukker. For __in (intervall) oppslag, kan du passere en CIDR notasjon adresseområde, for eksempel:
MyModel.objects.filter (ipaddr__in = '10 .0.0.0 / 24 ')
Foreløpig må du bruke denne formen for notasjon støttet for denne form for spørsmål. For nå, hvis du trenger å bruke et prefiks-nettmaske stil notasjon, gi det til IPy.IP selv og bruke den resulterende eksempel som filteret parameter.
Hva er nytt i denne utgivelsen:.
- Lagt til støtte for gt, gte, lt, og LTE-oppslag
Hva er nytt i versjon 0.1.4:
- IPy.IP eksempel hever unntak i forhold til en non-IP eksempel. Dette blir et problem når du kommer inn ModelForm validering (kom ikke opp når du bare bruker den ORM) med hensyn til tomt / nullverdier.
Krav :
- Python
- Django
Kommentarer ikke funnet