Crear campo para opciones múltiples en Django
Este artículo presentará cómo crear un campo para múltiples opciones y le mostrará cómo permitir que los usuarios seleccionen múltiples opciones en Django.
Crear campo para opciones múltiples en Django
Suponga que tiene un sitio web demosite
donde los usuarios agregan sus libros favoritos. Django tiene una forma predeterminada de que cuando haga elecciones, serán un menú desplegable y limitarán a un usuario a elegir solo un elemento.
Supongamos que queremos ver múltiples opciones para elegir un libro; tendremos más de una opción de libro. Veamos cómo haremos esto.
Entonces, antes que nada, prepararemos nuestra clase modelo Libro
. Abra el archivo models.py
y cree una tupla con diferentes nombres de libros.
Código:
from django.db import models
class Book(models.Model):
BOOK_CHOICES = (
("Parks of being a wallflower", "Parks of being a wallflower"),
("All the bright places", "All the bright places"),
("The girl on the train", "The girl on the train"),
("Django", "Django"),
)
Ahora, necesitamos crear la primera columna o campo en la base de datos, que sería un título
. El campo título
sería un CharField
.
En este campo título
, pasaremos la tupla BOOK_CHOICES
al argumento choices
. El argumento opciones
nos permitirá elegir una opción del menú desplegable.
Código:
title = models.CharField(max_length=100, choices=BOOK_CHOICES)
Registre este modelo de Libro
en el archivo admin.py
. Primero, necesitamos importar nuestro modelo Libro
y luego registrarlo usando admin.site.register()
.
Código:
from .models import Book
admin.site.register(Book)
Ahora, debemos abrir el archivo setting.py
, encontrar la lista INSTALLED_APPS
y agregar nuestra aplicación Django a esta lista antes de la migración. En este proyecto, estamos utilizando una aplicación de demostración
.
Código:
INSTALLED_APPS = [
"demo",
]
Abramos una terminal donde exista el directorio de archivos manage.py
y ejecutemos los siguientes comandos para realizar migraciones.
Comandos:
python manage.py makemigrations demo
python manage.py migrate
Ahora, tenemos que crear un superusuario antes de ejecutar el servidor.
Dominio:
python manage.py createsuperuser
Después de ejecutar este comando, debemos cumplir con los requisitos de nombre de usuario, correo electrónico y contraseña. Entonces, estamos listos para ejecutar el servidor usando el siguiente comando.
Dominio:
python manage.py runserver
Después de ejecutar el proyecto, debemos abrir la página de administración e iniciar sesión en la página para acceder al panel de administración.
Producción:
Aquí puedes ver que solo podemos elegir una opción.
Si desea que su usuario elija más de una opción, debe seguir las instrucciones.
Necesitaremos un módulo django-multiselectfield
para usar la función de opciones múltiples en nuestro proyecto. Es fácil de usar; sigue este enlace para poder usar esta función.
En este momento, nuestro archivo models.py
contiene el siguiente código.
Código:
from multiselectfield import MultiSelectField
from django.db import models
class Book(models.Model):
BOOK_CHOICES = (
("Parks of being a wallflower", "Parks of being a wallflower"),
("All the bright places", "All the bright places"),
("The girl on the train", "The girl on the train"),
("Django", "Django"),
)
title = MultiSelectField(choices=BOOK_CHOICES)
Producción:
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn