views.py 里:
#用户编辑贴子
class Edit_Topic(UpdateView):
model = Topic
slug_field = 'pk'
slug_url_kwarg = 'pk'
form_class = EditTopicForm
template_name = 'gqinfo/edit_topic.html'
context_object_name = 'topic'
def get_success_url(self):
t = Topic.objects.get(id=self.kwargs.get('pk'))
if t.hidden:#信息未审核,跳转到待审列表
return reverse("info:shenhe_list")
else:#信息审核后直接显示
return reverse_lazy("info:topic_detail", kwargs={'pk':t.id})
forms.py 里
class EditTopicForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.instance = kwargs.get('instance', None)
self.request = kwargs.get('request', None)#这里取不到数据
super(EditTopicForm, self).__init__(*args, **kwargs)
class Meta:
model = Topic
#fields = "__all__"
fields = ['title', 'infocategory', 'category', 'body', 'tags', 'ys_t']
# def form_valid(self, form):
# form.instance.created_by = self.request.user
# return super().form_valid(form)
def save(self):
inst = super(EditTopicForm, self).save()
print (self.request) #这里没有这个 request
print (inst.author.is_superuser, 'dddddd') #这里显示的是信息发布者的用户。不是当前登录的用户
return inst
在 forms.ModelForm 里怎么获得当前的登录用户? 想在 forms.ModelForm 里用当前登录用户与信息作者用户做个比较。不知道有什么办法可以在 forms.ModelForm 这里面取得当前的登录用户。 谢谢各位