Django에서 다중 선택을 위한 필드 만들기
이 문서에서는 다중 선택을 위한 필드를 만드는 방법과 Django에서 사용자가 여러 옵션을 선택하도록 허용하는 방법을 보여줍니다.
Django에서 다중 선택을 위한 필드 만들기
사용자가 좋아하는 책을 추가하는 demosite
웹 사이트가 있다고 가정합니다. Django에는 선택을 할 때 드롭다운 메뉴가 되어 사용자가 하나의 항목만 선택하도록 제한하는 기본 방식이 있습니다.
한 권의 책을 선택하기 위한 여러 옵션을 보고 싶다고 가정합니다. 우리는 하나 이상의 책 옵션을 가질 것입니다. 우리가 이것을 어떻게 할 것인지 봅시다.
따라서 우선 Book
모델 클래스를 준비합니다. models.py
파일을 열고 책 이름이 다른 튜플을 만듭니다.
암호:
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
필드는 CharField
입니다.
이 제목
필드에서 BOOK_CHOICES
튜플을 choices
인수에 전달합니다. choices
인수를 사용하면 드롭다운 메뉴에서 옵션을 선택할 수 있습니다.
암호:
title = models.CharField(max_length=100, choices=BOOK_CHOICES)
이 Book
모델을 admin.py
파일에 등록합니다. 따라서 먼저 Book
모델을 가져온 다음 admin.site.register()
를 사용하여 등록해야 합니다.
암호:
from .models import Book
admin.site.register(Book)
이제 마이그레이션하기 전에 setting.py
파일을 열고 INSTALLED_APPS
목록을 찾은 다음 Django 앱을 이 목록에 추가해야 합니다. 이 프로젝트에서는 데모
앱을 사용하고 있습니다.
암호:
INSTALLED_APPS = [
"demo",
]
manage.py
파일 디렉터리가 있는 터미널을 열고 다음 명령을 실행하여 마이그레이션을 수행해 봅시다.
명령:
python manage.py makemigrations demo
python manage.py migrate
이제 서버를 실행하기 전에 수퍼유저를 생성해야 합니다.
명령:
python manage.py createsuperuser
이 명령을 실행한 후 사용자 이름, 이메일 및 암호 요구 사항을 이행해야 합니다. 그런 다음 다음 명령을 사용하여 서버를 실행하는 것이 좋습니다.
명령:
python manage.py runserver
프로젝트를 실행한 후 관리자 페이지를 열고 페이지에 로그인해야 관리자 패널에 액세스할 수 있습니다.
출력:
여기에서 하나의 옵션만 선택할 수 있음을 알 수 있습니다.
사용자가 둘 이상의 옵션을 선택하도록 하려면 지침을 따라야 합니다.
프로젝트에서 다중 옵션 기능을 사용하려면 django-multiselectfield
모듈이 필요합니다. 사용하기 쉽습니다. 이 기능을 사용하려면 이 링크를 따르십시오.
현재 models.py
파일에는 다음 코드가 포함되어 있습니다.
암호:
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)
출력:
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