Erstellen Sie ein Feld für Mehrfachauswahl in Django

Salman Mehmood 15 Februar 2024
Erstellen Sie ein Feld für Mehrfachauswahl in Django

In diesem Artikel wird gezeigt, wie Sie ein Feld für mehrere Optionen erstellen und wie Sie es Benutzern ermöglichen, mehrere Optionen in Django auszuwählen.

Erstellen Sie ein Feld für Mehrfachauswahl in Django

Angenommen, Sie haben eine demosite-Website, auf der Benutzer ihre Lieblingsbücher hinzufügen. Django hat eine Standardmethode, bei der Sie Entscheidungen treffen, die ein Dropdown-Menü sind und einen Benutzer darauf beschränken, nur ein Element auszuwählen.

Angenommen, wir möchten mehrere Optionen für die Auswahl eines Buches sehen; Wir werden mehr als eine Buchoption haben. Mal sehen, wie wir das machen werden.

Also machen wir als erstes unsere Modellklasse Buch fertig. Öffnen Sie die Datei models.py und erstellen Sie ein Tupel mit verschiedenen Buchnamen.

Code:

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"),
    )

Jetzt müssen wir die erste Spalte oder das erste Feld in der Datenbank erstellen, das wäre ein Titel. Das title-Feld wäre ein CharField.

In diesem title-Feld übergeben wir das BOOK_CHOICES-Tupel an das choices-Argument. Das Argument choices ermöglicht es uns, eine Option aus dem Dropdown-Menü auszuwählen.

Code:

title = models.CharField(max_length=100, choices=BOOK_CHOICES)

Registrieren Sie dieses Buch-Modell in der Datei admin.py. Also müssen wir zuerst unser Book-Modell importieren und es dann mit admin.site.register() registrieren.

Code:

from .models import Book

admin.site.register(Book)

Jetzt müssen wir die Datei setting.py öffnen, die Liste INSTALLED_APPS finden und unsere Django-App vor der Migration zu dieser Liste hinzufügen. In diesem Projekt verwenden wir eine demo-App.

Code:

INSTALLED_APPS = [
    "demo",
]

Öffnen wir ein Terminal, in dem das Dateiverzeichnis manage.py vorhanden ist, und führen Sie die folgenden Befehle aus, um Migrationen vorzunehmen.

Befehle:

python manage.py makemigrations demo
python manage.py migrate

Jetzt müssen wir einen Superuser erstellen, bevor wir den Server ausführen.

Befehl:

python manage.py createsuperuser

Nachdem Sie diesen Befehl ausgeführt haben, müssen wir die Anforderungen an Benutzername, E-Mail und Passwort erfüllen. Dann können wir den Server mit dem folgenden Befehl ausführen.

Befehl:

python manage.py runserver

Nach dem Ausführen des Projekts müssen wir die Admin-Seite öffnen und uns auf der Seite anmelden, um auf das Admin-Panel zuzugreifen.

Ausgang:

Django Multiple Choices - Output 1

Hier können Sie sehen, dass wir nur eine Option auswählen können.

Wenn Sie möchten, dass Ihr Benutzer mehr als eine Option auswählt, müssen Sie die Anweisungen befolgen.

Wir benötigen ein django-multiselectfield-Modul, um die Mehrfachoptionsfunktion in unserem Projekt zu verwenden. Es ist einfach zu bedienen; Folgen Sie diesem Link, um diese Funktion nutzen zu können.

In diesem Moment enthält unsere Datei models.py den folgenden Code.

Code:

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)

Ausgang:

Django Multiple Choices - Output 2

Salman Mehmood avatar Salman Mehmood avatar

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

Verwandter Artikel - Django Model