【发布时间】:2020-03-17 10:07:11
【问题描述】:
在views.py中
class ProcessMessage(TemplateView):
template_name = 'chat/chat.html'
def get_object(self):
id=self.kwargs.get('pk')
obj=None
if id is not None:
obj= User.objects.get(pk=id)
return obj
def get(self, request, pk=None,*args, **kwargs):
obj=self.get_object()
print(obj,pk)
super(ProcessMessage, self).get(request, *args, **kwargs)
return render(request, self.template_name, {'form': ChatForm()})
def post(self, request, pk=None,*args, **kwargs):
obj=self.get_object()
pk=pk
print(pk)
print('obj is',obj)
form = ChatForm(data=request.POST)
# log = logging.basicConfig(level=logging.DEBUG)
# print('post from index')
if form.is_valid():
//////something////
在 urls.py 中
app_name = 'chatbot'
urlpatterns = [
path('demo', views.ProcessMessage.as_view(), name='index'),
path('<uuid:pk>/demo', views.ProcessMessage.as_view(), name='index'),
]
我在 get 方法中获取 obj 和 pk 的值,但我也希望在 post 方法中获取这些值(当前获取值无)
我需要在 def Post 方法中从 URL 中获取 id/pk 来获取用户信息(不,我不想使用 request.user)
【问题讨论】:
-
request.POST.get('pk')但显然你需要一些东西(表单/JS)在 POST 请求中发送PK。 -
我也有同样的想法,但如果可能的话,我希望有一些直接的方法
-
self.kwargs.get('pk')应该以相同的方式处理 GET 和 POST 请求。请出示您的模板。 -
@Alasdair 我试过了,显示值None
-
哪一行显示值
None?请edit问题并按照我的要求包含模板。
标签: python django post get django-views