Reverse Url 사용하기 - Tirrilee/TechTalk GitHub Wiki
정리
- models.py에서 get_absolute_url을 설정해서 create, update 시
- delete 시에는 View에서 reverse_lazy를 사용한다.
- 전역변수/클래스 변수에서 url reverse 가 필요할 때 reverse_lazy를 사용
CreateView
views.py
class PostCreateView(CreateView):
model = Post
field = '__all__'
def get_success_url(self):
return resolve_url('blog:post_detail', self.object.id)
models.py
from django.urls import reverse
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def get_absolute_url(self):
return reverse('blog:post_detail', args=[self.id])
DeleteView
views.py
class PostDeleteView(DeleteView):
model = Post
success_url = reverse_lazy('blog:post_list')
# 전역변수/클래스 변수에서 url reverse 가 필요할 때 reverse_lazy를 사용