그동안 개발을 하면서 특정 설정 때문에 애를 먹었다.
기존 python을 설치하면서 python3로 commnad를 사용해야만 python명령어가 가능하여 alias를 적용시켰는데 alias를 적용시키니 poetry가 정상적으로 작동하지 않아 골치 아팠다.
예를들어 poetry shell에 들어간 후 python manage.py runserver를 하면 해당 poetry에 종속된 환경으로 장고 서버가 실행되어야 하지만 alias로 인해 python의 인터프린터가 poetry가 아닌 전역 python으로 실행되어 pip install을 하지 않은 라이브러리들은 모두 설치하라는 경고가 나와 버렸던 것이다. 즉 alias때문에 python의 인터프린터가 고정이되버렸다. 앞으로는 왠만해서는 기본 설정은 안건드려야겠다.
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
class GenderChoices(models.TextChoices):
MALE = ("male", "Male") #첫번째가 value 두번째가 label
FEMALE = ("female", "Female")
class LanguageChoices(models.TextChoices):
KR = ("kr", "Korean") #max_length넘으면 안됨
EN = ("en", "English")
class CurrencyChoices(models.TextChoices):
WON = "won", "Korean Won" #튜플은 꼭 괄호를 칠필요없음
USD = "usd", "Dollar"
first_name = models.CharField(
max_length=150,
editable=False,
)
last_name = models.CharField(
max_length=150,
editable=False,
)
avatar = models.ImageField()
name = models.CharField(
max_length=150,
default="",
)
is_host = models.BooleanField(
default=False,
)
gender = models.CharField(
max_length=10,
choices=GenderChoices.choices,
)
language = models.CharField(
max_length=2, #choices의 길이가 max_length를 넘어서는 안됨
choices=LanguageChoices.choices,
)
currency = models.CharField(
max_length=5,
choices=CurrencyChoices.choices,
)
pycharm black 설치
https://songjaekwan.tistory.com/17
Pycharm에 Black formatter 설정하기
Black이란? 개발자들간 코드 스타일의 통일은 매우 중요합니다. 때문에 코드를 일정하게 통일시켜줄 수 있는 코드 포메터를 사용하기도 합니다. Black은 최근 파이썬 커뮤니티에서 가장 널리 쓰이
songjaekwan.tistory.com
-> 프리티어 같은거임
해당 설정에 쓰인 $FilePath$, $ProjectFileDir$같은것은 파이참 환경 변수 같은 거임
python manage.py createsuperuser
-> 관리자 생성
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
class GenderChoices(models.TextChoices):
MALE = ("male", "Male")
FEMALE = ("female", "Female")
class LanguageChoices(models.TextChoices):
KR = ("kr", "Korean")
EN = ("en", "English")
class CurrencyChoices(models.TextChoices):
WON = "won", "Korean Won"
USD = "usd", "Dollar"
first_name = models.CharField(
max_length=150,
editable=False,
)
last_name = models.CharField(
max_length=150,
editable=False,
)
avatar = models.ImageField(blank=True) #blank는 form에서 필드가 필수적이지 않게 해줌
name = models.CharField(
max_length=150,
default="",
)
is_host = models.BooleanField(
default=False,
)
gender = models.CharField(
max_length=10,
choices=GenderChoices.choices,
)
language = models.CharField(
max_length=2,
choices=LanguageChoices.choices,
)
currency = models.CharField(
max_length=5,
choices=CurrencyChoices.choices,
)