본문 바로가기
카테고리 없음

Django의 model, admin, views 기본 작성 법

by abccoco 2022. 5. 31.

오늘 아침 퀴즈를 한 내용들을 바탕으로 modle과 admin, views를 작성하는 법에 대해 알아보자

각 내용의 설명은 코드 안의 주석으로 확인할 수 있다.

 

"타임어택을 할때는 굉장히 긴 코드로 작성해야 한다고 생각했는데 생각보다 코드가 짧았었다.

지금 아래의 코드 작성 방법을 응용하면 여러 새로운 기능들을 추가할 수 있다."

 

 

Django프로젝트 생성,

blog 앱 settings.py에 등록 후 작성해야 할 점들

 

 

models.py

models.py에서 새로운 모델 만들기

# modles.py
class Article(models.Model):

필드명 = models.ForeignKey(연결할 모델, on_delete=models.CASCADE)
필드명 = models.CharField(max_length=256)

 

admin.py

어드민 페이지에서 내가 만든 모델 볼 수 있게 추가하기

# admin.py
from.modle import 내가 만든 모델명


admin.site.register(내가 만든 모델명)

 

view.py

method = get 방식

# views.py get

from.modle import Article(내가 만든 모델명)


# 새로운 변수안에 모델의 오브젝을 전부 가져와 넣는다
aritcles(새로운 변수명) = Article(내가 만든 모델명).object.all()

# 딕셔너리 형태로 오브젝을 넣어준다
# 이제 html에서 articles라는 key로 object를 보여줄 수 있게 되었다
return render(request, 'html파일', {'articles' = articles})

 

method = post 방식

# views.py post

변수a = request.POST.get('프론트의 name, None)

# ForeignKey 없는 방식
article(변수명) = 아티클(모델명)(Article.objects.create(class명 = 변수a)

# ForeignKey 있는 방식 ( 예시로 클레스 아티클의 카테고리가 클래스 카테고리와 연결되 있다면)
변수명(category) = 연결된 클래스(Category).objects.get(name = category_name)
변수명(article) = 모델명(Article.objects.create(category=category)
왼쪽의 name, category는 실제 모델의 필드명이다
오른쪽의 category는 view에 선언된 모델명이다

category_name = request.POST.get('category', None)
변수명(article) = 모델명(Article.objects.create(category=category_name)
return redirect('나의 url')

 

글마다 서로 다른 url을 주고 싶다면?

# views.py return부분

# pk는 첫번째 글 작성하면 1 두번째면 2 세번째면 3 자동으로 숫자를 할당한다
return redirct('url', article.pk)

 

댓글