(Django 기초) get_success_url

Posted by : at

Category : Django



# profileapp\views.py

class ProfileCreateView(CreateView):
    model = Profile
    context_object_name = 'target_profile'
    form_class = ProfileCreationForm
    # success_url = reverse_lazy('accountapp:hello_world')
    template_name = 'profileapp/create.html'

    def form_valid(self, form):
        temp_profile = form.save(commit=False)
        temp_profile.user = self.request.user
        temp_profile.save()
        return super().form_valid(form)

    def get_success_url(self):
        return reverse('accountapp:detail', kwargs={'pk':self.object.user.pk})


@method_decorator(profile_ownership_required, 'get')
@method_decorator(profile_ownership_required, 'post')
class ProfileUpdateView(UpdateView):
    model = Profile
    context_object_name = 'target_profile'
    form_class = ProfileCreationForm
    success_url = reverse_lazy('accountapp:hello_world')
    template_name = 'profileapp/update.html'

    def get_success_url(self):
        return reverse('accountapp:detail', kwargs={'pk':self.object.user.pk})
<!-- accountapp\detail.html -->
{% extends 'base.html' %}
{% load bootstrap4 %}

{% block content %}

  <div>
    <div style="text-align: center; max-width: 500px; margin: 4rem auto;">
      <p>
        {{ target_user.date_joined }}
      </p>


      {% if target_user.profile %}

      <img src="{{ target_user.profile.image.url }}" alt="" style="height: 12rem; width: 12rem; border-radius: 20rem; margin-bottom: 3rem;">

      <h2 style="font-family: 'NanumSquareB'">
        {{ target_user.profile.nickname }}
          {% if target_user == user %}
          <a href="{% url 'profileapp:update' pk=target_user.profile.pk %}">
            edit
          </a>
          {% endif %}
      </h2>

      <h5 style="margin-bottom: 4rem">
        {{ target_user.profile.message }}
      </h5>

      {% else %}
      {% if target_user == user %}
        <a href="{% url 'profileapp:create' %}">
          <h2 style="font-family: 'NanumSquareB'">
            Create Profile
          </h2>
        </a>
      {% else %}
      <h2>
        닉네임 미설정
      </h2>
      {% endif %}
      {% endif %}

      {% if target_user == user %}
      <a href="{% url 'accountapp:update' pk=user.pk %}">
        <p>
          Change Info
        </p>
      </a>
      <a href="{% url 'accountapp:delete' pk=user.pk %}">
        <p>
          Quit
        </p>
      </a>
      {% endif %}
    </div>
  </div>

{% endblock %}

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links