GenericIPAddressField en Django Forms es un campo de texto, para la entrada de direcciones IP. Es un campo que contiene una dirección IPv4 o IPv6. El widget predeterminado para esta entrada es TextInput . Se normaliza a una string de Python. Valida que el valor dado es una dirección IP válida.
GenericIPAddressField toma los siguientes argumentos opcionales:
- protocolo: limita las entradas válidas al protocolo especificado. Los valores aceptados son ambos (predeterminados), IPv4 o IPv6. La coincidencia no distingue entre mayúsculas y minúsculas.
- unpack_ipv4 :- Descomprime direcciones mapeadas IPv4 como ::ffff:192.0.2.1. Si esta opción está habilitada, esa dirección se desempaquetaría a 192.0.2.1. El valor predeterminado está deshabilitado. Solo se puede usar cuando el protocolo se establece en ‘ambos’.
Sintaxis
field_name = forms.GenericIPAddressField(**options)
Django formulario GenericIPAddressField Explicación
Ilustración de GenericIPAddressField utilizando un ejemplo. Considere un proyecto llamado geeksforgeeks que tenga una aplicación llamada geeks.
Consulte los siguientes artículos para comprobar cómo crear un proyecto y una aplicación en Django.
Ingrese el siguiente código en el archivo forms.py de la aplicación geeks .
Python3
from django import forms # creating a form class GeeksForm(forms.Form): geeks_field = forms.GenericIPAddressField( )
Agregue la aplicación geeks a INSTALLED_APPS
Python3
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'geeks', ]
Ahora, para convertir este formulario en una vista, necesitamos una vista y una URL asignada a esa URL. Primero creemos una vista en views.py de la aplicación geeks,
Python3
from django.shortcuts import render from .forms import GeeksForm # Create your views here. def home_view(request): context = {} context['form'] = GeeksForm() return render( request, "home.html", context)
Aquí estamos importando ese formulario en particular de forms.py y creando un objeto en la vista para que se pueda representar en una plantilla. Ahora, para iniciar un formulario de Django, debe crear home.html, donde uno estaría diseñando las cosas a su gusto. Vamos a crear un formulario en home.html.
html
<form method="POST"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="Submit"> </form>
Finalmente, una URL para mapear a esta vista en urls.py
Python3
from django.urls import path # importing views from views..py from .views import home_view urlpatterns = [ path('', home_view ), ]
Ejecutemos el servidor y verifiquemos qué sucedió realmente, Ejecutar
Python manage.py runserver
Por lo tanto, se crea un geeks_field GenericIPAddressField reemplazando «_» con «». Es un campo para ingresar direcciones IP.
¿Cómo usar GenericIPAddressField?
GenericIPAddressField se usa para ingresar la dirección IP en la base de datos. Uno puede ingresar la dirección IP del usuario, IPv4, etc. Hasta ahora hemos discutido cómo implementar GenericIPAddressField pero cómo usarlo en la vista para realizar la parte lógica. Para realizar algo de lógica, necesitaríamos obtener el valor ingresado en el campo en una instancia de string de python. Para obtener el código de GitHub de GenericIPAddressField en funcionamiento, haga clic aquí en views.py,
Python3
from django.shortcuts import render from .forms import GeeksForm # Create your views here. def home_view(request): context = {} form = GeeksForm(request.POST or None) context['form']= form if request.POST: if form.is_valid(): temp = form.cleaned_data.get("geeks_field") print(type(temp)) return render(request, "home.html", context)
Ahora intentemos ingresar algunos otros datos en el campo.
Puede ver claramente que está solicitando ingresar una dirección IP válida. Intentemos ingresar una dirección IP válida ahora.
Ahora estos datos se pueden obtener utilizando el diccionario de solicitud correspondiente. Si el método es GET, los datos estarían disponibles en request.GET y si es post, request.POST correspondientemente. En el ejemplo anterior, tenemos el valor en temperatura que podemos usar para cualquier propósito. Puede verificar que los datos se conviertan en una instancia de string de python en geeks_field.
Argumentos del campo central
Los argumentos de Core Field son los argumentos dados a cada campo para aplicar alguna restricción o impartir una característica particular a un campo en particular. Por ejemplo, agregar un argumento requerido = Falso a GenericIPAddressField permitirá que el usuario lo deje en blanco. Cada constructor de clase Field toma al menos estos argumentos. Algunas clases de campo toman argumentos adicionales específicos de campo, pero siempre se debe aceptar lo siguiente:
.math-table { borde-colapso: colapsar; ancho: 100%; } .math-table td { borde: 1px sólido #5fb962; alineación de texto: izquierda! importante; relleno: 8px; } .math-table th { borde: 1px sólido #5fb962; relleno: 8px; } .math-table tr>th{ color de fondo: #c6ebd9; alineación vertical: medio; } .math-table tr:nth-child(odd) { background-color: #ffffff; }
Opciones de campo | Descripción |
---|---|
requerido | De forma predeterminada, cada clase de campo asume que el valor es obligatorio, por lo que para que no sea obligatorio, debe configurar requerido = Falso |
etiqueta | El argumento de la etiqueta le permite especificar la etiqueta «apto para humanos» para este campo. Esto se usa cuando el campo se muestra en un formulario. |
sufijo_etiqueta | El argumento label_suffix le permite anular el label_suffix del formulario por campo. |
artilugio | El argumento del widget le permite especificar una clase de widget para usar al representar este campo. Consulte Widgets para obtener más información. |
texto de ayuda | El argumento help_text le permite especificar texto descriptivo para este campo. Si proporciona texto de ayuda, se mostrará junto al campo cuando uno de los métodos de formulario de conveniencia represente el campo. |
error de mensajes | El argumento error_messages le permite anular los mensajes predeterminados que generará el campo. Pase un diccionario con claves que coincidan con los mensajes de error que desea anular. |
validadores | El argumento de los validadores le permite proporcionar una lista de funciones de validación para este campo. |
localizar | El argumento localizar permite la localización de la entrada de datos del formulario, así como la salida representada. |
discapacitado _ | El argumento booleano disabled, cuando se establece en True, desactiva un campo de formulario utilizando el atributo HTML disabled para que los usuarios no puedan editarlo. |
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA