21강 CreateView를 통한 회원가입 구현

짜부·2023년 1월 16일

작정하고 장고

목록 보기
28/41

1. class base View 만들기

class AccountCreateView(CreateView):
    model = User #장고에서 기본제공하는 model
    form_class = UserCreationForm
    success_url = reverse_lazy('accountapp:hello_world')
    template_name = 'accountapp/create.html'
  • User : 장고에서 기본제공하는 model
    🎇tip:Ctrl+b를 누르면 정의되어있는곳으로 이동)
  • UserCreationForm : 장고가 기본적인 form을 제공함
  • success_rul : 다시 이동항 url
    *함수형 view에서는 reverse 대신 reverse_lazy사용
  • template_name : 어느 html을 볼지

2. url 경로 지정

accountapp->urls.py

urlpatterns = [
    path('hello_world/', hello_world, name='hello_world'),
    path('create/',AccountCreateView.as_view(),name='create')
]

class view는 .as_view()를 사용해서 view를 넘겨주어야함.

3. create.html만들기

{% extends 'base.html'%}

{% block content %}

    <div style="text-align: center">
        <form action="{% url 'accountapp:create' %}" method="post">
            {% csrf_token %}
            {{ form }}
            <input type="submit" class="btn btn-primary">
        </form>
    </div>
{% endblock %}
  • action 내부에는 우리가 요청을 보내는 url이 필요함.
    모두 통일 시키기 위해 {% url 'accountapp:create'%}로 설정
  • {{ form }} view에서 지정한 form_class를 사용

결과 화면

profile
화이팅

0개의 댓글