django 在 forms.ModelForm 里怎么获得当前的登录用户?

4次阅读

共计 1180 个字符,预计需要花费 3 分钟才能阅读完成。

django 在 forms.ModelForm 里怎么获得当前的登录用户?想在 forms.ModelForm 里用当前登录用户与信息作者用户做个比较。不知道有什么办法可以在 forms.ModelForm 这里面取得当前的登录用户。谢谢各位

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 这里面取得当前的登录用户。谢谢各位

正文完
 0