📢 공지사항
home

Profileapp 시작 그리고 ModelForm

복습
수강일
수강일_
숫자
30
주차
2주차
체크
태그
Profileapp Implementaion

Profile App

Account객체와 Profile객체를 1:1 매칭을 한다
닉네임, 이미지, 메시지 세개를 제공한다
DeleteView와 DetailView를 구현하지 않고, 계정이 삭제되면 프로필도 같이 삭제되게 만든다
1.
터미널에서 앱을 만들어준다 python manage.py startapp profileapp
2.
pragmatic/settings.py에 INSTALLED_APP에 profileapp을 등록해준다
3.
pragmatic/urls.py에 profileapp의 url을 라우팅해준다 path('profileapp/', include('profileapp.urls'))
4.
profileapp 내부에 urls.py를 만들어주고,다음과 같이 입력해준다
app_name = 'profileapp' urlpatterns = [ ]
Python
복사
5.
models.py에 새로운 모델을 만들어준다
class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE related_name='profile')#이 프로파일과 유저 개체를 연결해줌
Python
복사
on_delete : 연결되어있는 개체가 사라졌을때, 어떤 행동을 할 지 결정한다 CASCADE : 연결되어 있는 개체가 삭제되면, 프로필도 삭제한다
request.user.profile
내부에 모델을 계속 작성해준다.
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_legnth=100, null=True)
Python
복사

Model Form?

: 기존 모델을 그대로 폼으로 변환해주는 기능
모델 폼을 상속받은 후에, 어떤 모델을 사용할건지, 어떤 필드를 입력하게 할 것인지만 설정하면 그대로 모델이 폼으로 변환됨.
from django.forms import ModelForm from profileapp.models import Profile class ProfileCreationForm(ModelForm): class Meta: model = Profile fields = ['image', 'nickname', 'message']
Python
복사