我使用基于类的视图来更新我的模型:
class BlogUpdateView(UpdateView):
model=Blog
def get_context_data(self, **kwargs):
context = super(BlogUpdateView, self).get_context_data(**kwargs)
context['author'] = get_object_or_404(User,
username__iexact=self.kwargs['username'])
return context
我想遵循 DRY 原则,避免get_context_data
在每个视图函数中重复。这个问题几乎和这个问题一样。依靠@Jj给出的答案,我想我的班级看起来像这样:
class BlogMixin(object):
def get_author(self):
# How to get author?
return author
def get_context_data(self, **kwargs):
context = super(BlogMixin, self).get_context_data(**kwargs)
context['author'] = self.get_author()
return context
我的问题是:如何访问 mixin 类中的对象?
更新
答案在 mongoose_za 评论中给出。我可以通过这一行获得作者:
author = User.objects.get(username__iexact=self.kwargs['username'])