728x90
반응형
Nickname, Profile, Image 포함한 Profile app만들기
- Account 1 : Profile 1 구현
profileapp 생성
python manage.py startapp profileapp
settings.py 등록
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrap4',
'accountapp',
'profileapp'
]
urls.py 추가(메인)
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('accountapp.urls')),
path('profiles/', include('profileapp.urls')),
]
models.py 생성
from django.contrib.auth.models import User
from django.db import models
# Create your models here.
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
image = models.ImageField(upload_to='profile/', null=True)
nickname = models.CharField(max_length=20, unique=True, null=True)
message = models.CharField(max_length=100, null=True)
- Profile이라는 model 생성
OneToOneField
- 장고 제공 함수로 1:1 매칭해줌
on_delete=model.CASCADE
- 컬럼에 연결된 테이블도 DELETE되도록 설정
related_name
- related_name는 바로 연결할 수 있도록 name지정한 것
upload_to
- 이미지를 다른 서버 어디에 저장할 껀지 경로 설정
unique=True
- 해당 컬럼의 값은 유일 해야함, 중복될 수 없음
urls.py 생성
app_name = 'profileapp'
urlpatterns = [
]
apps.py 생성
from django.apps import AppConfig
class ProfileappConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'profileapp'
forms.py 생성
from django.db.models import fields
from django.forms import ModelForm
from profileapp.models import Profile
class ProfileCreationForm(ModelForm):
class Meta:
model = Profile
fields = ['image', 'nickname', 'message']
- 장고 제공 함수인 ModelForm을 사용하여 내가 만든 model을 form으로 만들기
반응형
'Backend > Django' 카테고리의 다른 글
django 20. Profileapp 마무리 (0) | 2021.10.06 |
---|---|
django 19. Profileapp 구현 시작 (0) | 2021.10.06 |
django 17. superuser, media 관련 설정 (0) | 2021.10.06 |
django 16. Decorator를 이용한 코드 간소화 (0) | 2021.10.06 |
django 15. Authentication 인증시스템 구축 (0) | 2021.10.06 |