새 app 생성
python manage.py startapp users
새 app을 추가한 이후에는 CUSTOM_APPS에 추가해줘야햠
# config - setting.py
CUSTOM_APPS = [
"houses.apps.HousesConfig",
"users.apps.UsersConfig"
]
장고에서 사용하는 User를 가져올 것임
User안에는 아이디 패스워드 메일 등 이미 장고에서 구현해둔 코드들이 많음. 이것을 재사용하지않는다는 것은 매우 비효율적인 일임
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
User가 장고의 User를 상속받아 사용하는 것!, 이후 확장을 할 수도 있음
참고)
1. 클래스 안에 있는 pass의 의미: 빈껍데기 클래스가 필요한 경우 사용할 수 있음
2. Model을 추가한 후에는 반드시 migrate를 해야함
3. 기존에 기본 User로 추가한 데이터 때문에 Custom User를 사용할 때 문제가 생길 수 있음
-> 따라서 처음부터 Custom User를 사용하여 프로젝트를 시작하라는 것임, 사용자가 이미 있는 상태에서는 교체할 수 가 없음
DB 삭제하고 서버 재시작하고 migration 다 지워야함
pass에 대한 설명글https://blockdmask.tistory.com/535
[python] 파이썬 pass 설명과 예제
안녕하세요. BlockDMask입니다. 오늘은 파이썬에서 패스~ pass 가 무엇인지 어디에 사용되는 것인지에 대해서 알아보겠습니다. 1. 클래스, 함수에서 사용하는 pass 구문 2. 반복문, if 등에서 사용하는 p
blockdmask.tistory.com
-> 정말 말그대로 의미의 패스.. 인가보다.
장고한테 기본 User를 사용하지 않고 커스텀 User를 사용한다고 알려줘야햠
#config - setting.py
# Auth
AUTH_USER_MODEL = "users.User" #어플리케이션명.모델명(models.py안에 있음)
admin.py
attribute에 대한 설명이 있는 사이트
https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Admin_site
Django Tutorial Part 4: Django admin site - Learn web development | MDN
That's it! You've now learned how to set up the administration site in both its simplest and improved form, how to create a superuser, and how to navigate the admin site and view, delete, and update records. Along the way you've created a bunch of Books, B
developer.mozilla.org
from django.contrib import admin
from .models import House
@admin.register(House)
class HouseAdmin(admin.ModelAdmin):
list_display = (
"name",
"price_per_night",
"address",
"pets_allowed"
)
list_filter = ("price_per_night", "pets_allowed")
# Register your models here.
해당 코드의 admin.ModelAdmin은 기본적인 관리자 모델을 상속 받는다는 뜻임
기존 User(권한등등을가진)를 상속받아서 확장하고 싶다면 위를 상속받으면 안됨 서로 다른 관리자페이지 종류임
권한을 가진 페이지를 import하고 상속받아야함
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User
@admin.register(User) # 이 클래스가 User를 관리한다고 선언하는것
class CustomUserAdmin(UserAdmin):
pass
슈퍼유저 만들기
python manage.py createsuperuser
해당 명령어 여러번해도 user가 슈퍼유저가 여러개등록될 뿐임
기존은 장고에서 주었던 User를 사용하여 user를 생성했기때문에 url이 /admin/auth/user였음
127.0.0.1:8000/admin/auth/user
이제는 커스텀 user를 만들었기 때문에 url이 http://127.0.0.1:8000/admin/users/user/로 바뀜
http://127.0.0.1:8000/admin/users/user/
'2024 > python 개발자 되기' 카테고리의 다른 글
[Day-5][Django] Custom Admin, admin 속성 값 수정 (0) | 2024.05.20 |
---|---|
[Day-4][Django] Custom User add Custom Fields (0) | 2024.05.20 |
[Day-2][Django] User 패널 수정 (0) | 2024.05.18 |
[Day-1][Django] app이란?, 어플리케이션 만들기 (0) | 2024.05.17 |
[Day-1][Django] 라이브러리와 프레임워크에 대한 차이(관리자 페이지 시간, 언어 변경) (0) | 2024.05.16 |