-
[django] command 만들기 OneToOneFieldPython & Django 2021. 9. 8. 19:12
OneToOneField 에 대한 커맨드를 어떻게 만들지 고민하다가 과제 코드를 보고 확인함.
## favs/models.py from django.db import models from core.models import CoreModel class FavList(CoreModel): """ Favourite List """ created_by = models.OneToOneField("users.User", on_delete=models.CASCADE) books = models.ManyToManyField("books.Book", related_name="fav_lists") movies = models.ManyToManyField("movies.Movie", related_name="fav_lists") def __str__(self): return f"{self.created_by}'s Fav List'"
## favs/management/commands/seed_favs.py from django.core.management.base import BaseCommand from favs.models import FavList from users.models import User from movies.models import Movie from books.models import Book class Command(BaseCommand): help = "This command seeds lists" def add_arguments(self, parser): parser.add_argument( "--total", help="How many lists do you want to create?", default=10) def handle(self, *args, **options): total = int(options.get('total')) users = User.objects.all()[:total] movies = Movie.objects.all() books = Book.objects.all() for user in users: fav_list = FavList.objects.create( created_by=user, ) fav_list.movies.set(choices(movies)) fav_list.books.set(choices(books)) self.stdout.write(self.style.SUCCESS(f'{total} lists created!'))
'Python & Django' 카테고리의 다른 글
[django] DetailView의 get_context_data 사용해서 객체 정보 전달하기 (0) 2021.09.14 [django] 하나의 URL 에서 여러 페이지네이션 구현하기 (0) 2021.09.10 [django] 페이지네이션 구현하기(장고 Paginator) (0) 2021.08.04 [django] 블로그 카테고리 게시판 만들기(카테고리 별 게시물 리스트, 카테고리 리스트 한 화면에 구현하기) (0) 2021.08.04 [Django] URL 관리하기 (0) 2021.06.02