【发布时间】:2016-03-31 11:39:37
【问题描述】:
我有一个使用 CreateView CBV 的视图 (CreateWorkRelationView)。在 URL 中,传递了一个参数(用户),我需要引用很多。是否可以将对象用户设置为在我班级的函数之外?那么你能从函数外部访问 kwargs 吗?
所以我基本上只想将以下行添加到我的课程中
user = get_object_or_404(Contact.pk=kwargs['user'])
然而,目前,返回
NameError: 名称 'kwargs' 未定义
这是我的课
class CreateWorkRelationView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
template_name = 'groups/group_form.html'
form_class = WorkRelationForm
model = WorkRelation
title = "Add a work relation"
success_message = "Workrelation was successfully created."
def form_valid(self, form):
user = get_object_or_404(Contact, pk=self.kwargs['user'])
form.instance.contact = user
return super(CreateWorkRelationView, self).form_valid(form)
def get_success_url(self):
return reverse_lazy('contacts:contact_detail', self.kwargs['user'])
我想这样做的原因是:
- 我想在我的标题字符串中使用这个对象。
- 我要再添加几个函数,它们都需要这个对象。
【问题讨论】:
-
如果你正在寻找登录用户,你可以使用 self.request.user 但我可能会遗漏一些东西
标签: python django django-class-based-views