오늘 아침 퀴즈를 한 내용들을 바탕으로 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)
댓글