210824 장고 커밋 30 Profileapp 시작 그리고 ModelForm
보안에 취약하니, 닉네임으로 만들어주는 목적이다.
닉네임,이미지,메세지 3개를 묶은 프로필앱을 따로만들거다.
프로필과 어카운트를 1:1로 매칭할것다. 어카운트에 하나의 프로필만 가능하게 구현하겠습니다.
NO DELETE VIEW
NO DETAIL VIEW
-----------
user = models.OneToOneField(user)
user객체를 프로파일과 하나씩 연결해준다.
class Profile(models.Model) :
class Profile(models.Model) :
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
on_delete = user 객체가 사라질때 어떤 반응을 보일것인가
casacade =user가 탈퇴하게되면 그 프로필이 없어지게 설정하는 것이다
related_name='profile' : 뷰에서 여러가지 유저객체를 사용했는데
request.user.profile 이런것을 썼었는데 굳이 따로 프로필 객체를 찾지 않더라도, 저 명령어에 바로 이름을 정해서
바로 출력할 수 있다.
form
accountapp
user creation form
-from django 기본장고에서 주는 것 이다.
profile은 기본제공이 안된다
수십개를 다 치기 는 힘드니, model form이라는 기능을 쓴다.
정리합니다
----------------------------
python manage.py startapp profileapp : profileapp folder creation
pragmatic - settings - INSTALLED_APPS - 'profileapp' 추가
pragmatic/urls.py - path('profiles/', include('profileapp.urls')), 추가
profileapp/urls.py - app_name = 'profileapp' 코딩 - urlpatterns 코딩
profileapp/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)
# null이 트루면 꼭 없어도 된다.
nickname = models.CharField(max_length=20, unique=True, null=True)
# unique 이 닉네임은 유일한 닉네임을 가져야한다.
message = models.CharField(max_length=100, null=True)
profileapp/forms.py-
from django.forms import ModelForm
from profileapp.models import Profile
class ProfileCreationForm(ModelForm):
class Meta:
model = Profile
fields = ['image', 'nickname', 'message']
'Computer Science > Django_pinterest' 카테고리의 다른 글
210907 장고 32깃 (0) | 2021.09.07 |
---|---|
210824 장고 커밋 31-32 Profileapp 구현 시작, 미설정계정 보여주기 (0) | 2021.08.24 |
210824 장고 커밋 29 superuser, media 관련 설정 (0) | 2021.08.24 |
210821 커밋 28, decorate깔끔하게 코드정리 (0) | 2021.08.21 |
210821 장고 27 커밋, 타 아이디로 접속이 되는 기능, 탈퇴 거부 (0) | 2021.08.21 |