私のdjangoアプリケーションでCBVを使用していて、get_context_dataとget_initial関数でインスタンスを取得するにはどうすればいいですか?Django DRYクラスベースのビュー
例:
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 {}
ここでの目標は、あなたがクラスを作成し、あなたのビューでそれを拡張することができる唯一の
私の質問の目標は、それは常にローカル変数を作成するには、ディスパッチを使用することをお勧めです二回 –