본문 바로가기

💻 Deep Wide Programming/Django

[⛺️ Django] Django basic #3 #4 복습 메모

728x90
반응형

📌UserAdmin (Django가 제공하는 어드민 패널)   

 

파란 라인 있는 박스 =  fieldset

기본 장고 어드민 fieldset + 추가해주고 싶다면 하단처럼.

banana fieldset을 만들어주었다.

바나나 필드셋 - 괄호와 컴마(,) 주의...💥 @DeepWideStudio

 

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from . import models

# Register your models here.
@admin.register(models.User)
class CustomUserAdmin(UserAdmin):

    """ Custom User Admin """

    fieldsets = UserAdmin.fieldsets + (
        ("Banana", {"fields": ("avatar", "gender", "bio")}),
    )

 

바나나 필드셋이 추가 생성된 것을 볼 수 있다. 

 

 

 

😃 [RECAP]

📌Application = a group of functions

📌우리가 Django의 코드를 이용하는게 아니라(Library𝙓 Framework 𝙊) , Django가 우리가 쓴 코드를 사용하는 것이다. 

📌Django에는 ORM(Object Relational Mapping) 이라는 것이 탑재되어 있다. 
👉ORM(Object Relational Mapping) = 우리가 작성한 파이썬 코드(model.py에서 작성한 코드)를 SQL문으로 바꿔서 Database가 알아들을 수 있도록 해준다. 

👉즉, 우리가 SQL문을 쓸 필요가 없다.  

👉이때, model.py는 fields로 구성되어 있다. 이 field들은 장고가 제공하는 것으로, 이미 데이터의 유효성 검사까지 해놓아 아주 편하다. ex. ImageField 코드를 사용하면, 장고 웹에서 작동해볼때 이미지 아닌 파일들은 업로드가 안됨!

 

📌model.py에서 작성해준 field들을 어드민패널에서 직접 보기위해서는, admin.py에서 register해줘야 한다. 

📌migration은 나중에 한번만 해주는 것이 좋다. 

 

 

👾 Country choices 생성하기 - 모든 국가 정보 다운로드 받기

구글에 Django Countries 검색 👉 github.com/SmileyChris/django-countries

 

SmileyChris/django-countries

A Django application that provides country choices for use with forms, flag icons static files, and a country field for models. - SmileyChris/django-countries

github.com

 

먼저 shell 안에서 💥pipenv💥로 install을 해준다. 

그리고 setting.py에서 THIRD_PARTY_APPS 에 추가해준다.

 

📌Tip

import할 때, 코드 작성 순서 : 위에서부터. 

1️⃣python

2️⃣Django

3️⃣Third Party source

 

🔗서로 다른 모델 연결하기

📌 1) 일대다 연결 

models.ForeignKey()

 

💥__str__

파이썬이 클래스를 발견하면 클래스를 마치 string처럼 보여줘야 하는데, 이 method를 파이썬에서 __str__이라고 표시한다. 

 

 

📌다대다 연결 (ex. users can have many rooms)

models.ManyToManyField()

728x90
반응형