Я использую CBV в своем приложении django и задаюсь вопросом, как я могу получить экземпляр в моей get_context_data И в моих get_initial функциях без повторения кода.Django DRY class based
пример:
class PostCreate(CreateView):
model = Post
def get_context_data(self, **kwargs):
context = super(VariationCreate, self).get_context_data(**kwargs)
blog_pk = self.kwargs.get('product_pk', None)
blog = None
if blog_pk:
try:
blog = Blog.objects.get(pk=blog_pk)
except Blog.DoesNotExist:
pass
context['blog'] = blog
return context
def get_initial(self, **kwargs):
context = self.get_context_data(**kwargs)
blog_pk = self.kwargs.get('product_pk', None)
blog = None
if blog_pk:
try:
blog = Blog.objects.get(pk=blog_pk)
return {"blog": blog}
except Blog.DoesNotExist:
return {}
Цель здесь, чтобы принести экземпляр блога только один раз
Цель моего вопроса, чтобы избежать извлечения экземпляра блога дважды –