본문 바로가기

Programming138

🧩 Django 관리자에서 Post 모델 꾸미기 - PostAdmin 설정하기 Django의 관리자 페이지는 ModelAdmin 클래스를 통해 다양한 설정이 가능합니다.이번 글에서는 Post 모델을 더 직관적으로 관리할 수 있도록 PostAdmin 클래스를 구성해보겠습니다.🛠 PostAdmin 코드class PostAdmin(admin.ModelAdmin): prepopulated_fields = {"slug": ("title", )} list_filter = ("author", "date", ) list_display = ("title", "author", )1️⃣ prepopulated_fieldsprepopulated_fields = {"slug": ("title", )}slug 필드가 자동으로 title 값을 기반으로 채워집니다.관리자에서 새 글을 입력할 .. 2025. 7. 23.
🛠 Django 관리자(admin) 페이지에 모델 등록하기 Django는 강력한 관리자 페이지를 기본으로 제공합니다. 모델을 관리자 페이지에 등록하면 웹 UI를 통해 데이터 생성, 수정, 삭제까지 손쉽게 할 수 있죠.이번 글에서는 admin.site.register() 함수를 통해 모델을 관리자에 등록하는 법을 알아보겠습니다.✅ 기본적인 모델 등록from django.contrib import adminfrom .models import Post, Author, Tag✍ 등록 코드admin.site.register(Post, PostAdmin)admin.site.register(Author)admin.site.register(Tag)PostAdmin은 Post 모델에 대한 커스터마이징 설정 클래스입니다.예를 들어 list_display, prepopulated_.. 2025. 7. 23.
📘 Django ORM 이해하기 – 역참조란 무엇인가? Django에서 모델 간의 관계를 설정할 때, 우리는 종종 ForeignKey나 ManyToManyField, OneToOneField 등을 사용하게 됩니다. 이 과정에서 함께 등장하는 개념이 바로 역참조 (Reverse Relation) 입니다.이번 글에서는 Django ORM에서의 역참조란 무엇인지, 그리고 실제 코드에서는 어떻게 사용하는지를 자세히 정리해보겠습니다. 🔁 역참조란?쉽게 말해 “어떤 객체가 다른 모델로부터 참조될 때, 그 참조된 쪽에서 참조한 객체들을 다시 조회하는 것” 을 의미합니다.예를 들어, 아래와 같이 Post 모델이 Author 모델을 참조하고 있는 구조를 생각해봅시다.class Author(models.Model): name = models.CharField(max_.. 2025. 7. 23.
📌 [Django 오류] QuerySet을 딕셔너리처럼 다루면 생기는 문제 (TypeError) 🛠️ 프로젝트 상황현재 블로그 프로젝트는 기존에 하드코딩된 딕셔너리 데이터를 제거하고, Post 모델을 통한 DB 기반으로 전환하는 과정입니다.이 과정에서 기존 로직을 그대로 가져오다가 모델 객체를 잘못 다루게 되어 오류가 발생했습니다. 💥 오류 상황slug 값으로 특정 포스트를 찾으려는 코드:all_posts = Post.objects.all()identified_post = next(post for post in all_posts if post['slug'] == slug)오류 메시지:TypeError: QuerySet indices must be integers or slices, not str. ❗️원인Post.objects.all()이 반환하는 QuerySet은 모델 인스턴스의 리스트입니다... 2025. 7. 23.
📌 [Django Admin 오류] list_filter에 날짜 필드를 넣었더니 오류가? (admin.E116 해결법) 🛠️ 프로젝트 상황기존에 Python 딕셔너리로 직접 작성한 블로그 포스트 데이터를 Django 모델을 이용해 데이터베이스에 저장하는 방식으로 전환하고 있는 중입니다.이 과정에서 Admin에서 필터 기능을 설정하다가 오류가 발생했습니다.💥 오류 상황PostAdmin 클래스에서 아래와 같이 list_filter를 설정했더니:class PostAdmin(admin.ModelAdmin): list_filter = ("author", "date", )다음과 같은 오류가 발생했습니다.: (admin.E116) The value of 'list_filter[1]' refers to 'date', which does not refer to a Field.❗️원인모델의 date 필드를 단순히 Python의 d.. 2025. 7. 23.
[Python Django] 🔄 Django Circular & Lazy Relationships 완전 정리 Django에서 모델을 정의하다 보면 종종 아래와 같은 상황을 마주하게 됩니다:두 모델이 서로를 참조하는 순환 관계 (circular relationship)하나의 모델이 자기 자신(self)과 관계를 맺는 경우다른 앱의 모델과 관계를 맺어야 할 때이럴 땐 Lazy 관계 (지연 관계)를 통해 문제를 우회할 수 있습니다.이번 포스트에서는 Django에서 자주 사용하는 Lazy 관계 예제를 3가지로 나눠서 설명합니다.1️⃣ 서로를 참조하는 두 모델 (Circular Relationship)class Product(models.Model): # ... other fields ... last_buyer = models.ForeignKey('User', on_delete=models.CASCADE)cl.. 2025. 7. 23.