Class Based View 에서 동적으로 context_data, messages, s

 
Chinseok Lee

Class Based View 에서 동적으로 context_data, messages, success_url 을 지정할 때, 매번 오버라이딩하는 게 귀찮아서, 조금 커스텀해서 쓰고 있습니다.

class PostUpdateView(BaseUpdateView):
… model = Post
… form_class = PostForm

… # template_context = {‘form_title’: ‘form title’}
… template_context = lambda self: {‘form_title’: ‘ edit’ % self.get_object().name}

… # valid_message = lambda self: ‘updated’
… # valid_message = lambda self: (‘info’, ‘ updated’ % self.get_object().name)
… valid_message = lambda self: [
……. (‘info’, ‘ updated’ % self.get_object().name),
……. (‘debug’, ‘ updated (debug)’ % self.get_object().name),
… ]

… success_url_fn = lambda self: reverse(‘post:list’)

Advertisements