📌 Django-extensions 완전 가이드 - 실전 개발을 위한 필수 도구
·
기술블로그-Django편
📌 Django-extensions 완전 가이드 - 실전 개발을 위한 필수 도구🧩 django-extensions란?django-extensions는 Django 개발을 더 쉽고 강력하게 도와주는 도우미 커맨드 모음집입니다. 다양한 커맨드라인 기능을 추가로 제공해주는 개발 생산성 향상 라이브러리입니다.🚀 주요 특징기능 설명📜 shell_plus자동 import가 적용된 Django shell 실행🧪 runscript관리 명령어로 스크립트 실행 가능🔁 show_urls전체 URL 목록 보기 (path, name, view 확인용)🔄 graph_modelsERD를 시각화한 모델 구조도 생성🧼 clean_pyc.pyc 캐시 파일 전체 삭제⚙️ 설치 및 세팅1. 설치 명령어pip install d..
📌 Django-summernote - WYSIWYG 에디터 통합 가이드
·
기술블로그-Django편
📌 Django-summernote - WYSIWYG 에디터 통합 가이드✨ django-summernote란?django-summernote는 Django 프로젝트에 WYSIWYG(What You See Is What You Get) 에디터를 간편하게 통합할 수 있게 해주는 라이브러리입니다. 사용자는 HTML을 몰라도 글을 시각적으로 작성할 수 있어 게시판, 블로그, 관리자 에디터 등에 많이 사용됩니다.📌 특징항목 설명🌈 직관적인 에디터이미지 삽입, 글꼴 변경, 링크, 표 등 다양한 기능 제공📸 이미지 업로드 지원에디터 내에서 바로 이미지 업로드 가능 (MEDIA 연동 필요)⚙️ Admin 통합Django Admin에서 자동 적용 가능🔗 외부 JS/CSS 의존도 낮음필요한 라이브러리는 자동으로 ..
📌 Django ImageField 완전 정리 - 이미지 업로드 기능 구현 가이드
·
기술블로그-Django편
📌 Django ImageField 완전 정리 - 이미지 업로드 기능 구현 가이드🖼️ ImageField란?ImageField는 Django 모델에서 이미지를 저장하기 위한 전용 필드 타입입니다. FileField를 상속하며, 이미지 파일인지 검증하는 기능이 추가된 형태입니다.from django.db import modelsclass Photo(models.Model): image = models.ImageField(upload_to='photos/')속성 설명upload_to업로드된 파일이 저장될 경로 (MEDIA_ROOT 기준)height_field, width_field이미지의 너비/높이를 저장할 필드 지정 가능🧰 Pillow - 필수 이미지 처리 라이브러리ImageField 사용 시 ..
✅ Django ORM 필드 룩업 완전 정복: nickname__icontains vs tags__tag 차이 이해하기
·
기술블로그-Django편
✅ Django ORM 필드 룩업 완전 정복: nickname__icontains vs tags__tag 차이 이해하기1. 🎯 왜 헷갈릴까?둘 다 이렇게 생겼습니다:nickname__icontains='cha'tags__tag='news'문법 구조는 동일 (필드__옵션, 필드__필드)하지만 하나는 단순 필드 조건, 다른 하나는 관계 모델을 타고 들어가는 조건그래서 모양은 같지만 의미는 전혀 다릅니다.2. 🧠 핵심 차이 요약항목 nickname__icontains tags__tag시작 단어nicknametags의미현재 모델의 필드관계 모델(Tag)을 따라감필드 타입CharFieldManyToManyField조건 처리문자열 안에 포함 여부연결된 태그 객체 중 조건 일치 여부3. 🔍 각각의 예시와 의미✅..
✅ Django 검색 뷰 함수 완전 분석: search() 함수 흐름 이해하기
·
기술블로그-Django편
✅ Django 검색 뷰 함수 완전 분석: search() 함수 흐름 이해하기1. 🎯 목적사용자가 입력한 검색어(q)와 검색 대상(type)에 따라사용자 닉네임을 검색하거나,태그가 포함된 게시글을 검색해서결과를 해당 템플릿에 렌더링하는 뷰 함수입니다.2. 🔍 전체 코드 구조def search(request): search_type = request.GET.get('type') # 'user' 또는 'tag' q = request.GET.get('q', '') # 검색어 (없으면 기본값 '') if search_type in ['user', 'tag'] and q: if search_type == 'user': object_list =..
✅ Django symmetrical 옵션 완전 이해하기
·
기술블로그-Django편
✅ Django symmetrical 옵션 완전 이해하기1. 🔍 symmetrical이란?Django의 ManyToManyField에서 '자기 자신(self)' 모델과의 관계를 정의할 때,"한쪽만 연결할지, 양쪽을 동시에 연결할지"를 결정하는 옵션입니다.2. 🔁 설정별 관계 구조✅ symmetrical=True (기본값)양방향 관계내가 너를 연결하면 → 너도 나랑 자동으로 연결됨예: 친구, 커플, 공동작업자✅ symmetrical=False단방향 관계내가 너를 팔로우해도 → 너는 날 팔로우하지 않음예: 팔로우, 구독, 좋아요3. 🔨 코드 예시 비교🔷 symmetrical=True (친구 관계 예시)class User(models.Model): friends = models.ManyToMany..
✅ Django QuerySet의 논리 평가와 get_context_data 코드 완전 이해하기
·
기술블로그-Django편
✅ Django QuerySet의 논리 평가와 get_context_data 코드 완전 이해하기1. 💡 핵심 질문UserFollowing.objects.filter(...)는 그냥 QuerySet을 반환할 뿐인데, 어떻게 조건문 없이도 if에서 True/False처럼 판단이 가능할까?2. 🔍 코드 예제 분석✅ 예시 코드 (Django CBV에서 사용)def get_context_data(self, **kwargs): data = super().get_context_data(**kwargs) if self.request.user.is_authenticated: data['is_follow'] = UserFollowing.objects.filter( to_use..
📌 Django ORM - get_or_create 완전 정복
·
기술블로그-Django편
📌 Django ORM - get_or_create 완전 정복✅ 개념 설명get_or_create()는 Django ORM에서 가장 자주 쓰이는 메서드 중 하나로,**"해당 조건의 객체가 있으면 가져오고, 없으면 새로 생성"**하는 기능을 제공합니다.obj, created = Model.objects.get_or_create(조건)반환값 설명obj가져오거나 새로 만든 객체created새로 생성되었으면 True, 기존에 있던 것이면 False🧪 기본 사용 예시user, created = User.objects.get_or_create(email='test@example.com')해당 이메일을 가진 유저가 있으면 user에 할당없으면 새로 생성 후 저장하고, created=True🔍 필드값 추가하여 생..