Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在post方法中访问动态url的任何直接方法_Python_Django_Post_Get_Django Views - Fatal编程技术网

Python 在post方法中访问动态url的任何直接方法

Python 在post方法中访问动态url的任何直接方法,python,django,post,get,django-views,Python,Django,Post,Get,Django Views,in 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

in 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////

在URL.py中

app_name = 'chatbot'
urlpatterns = [
    path('demo', views.ProcessMessage.as_view(), name='index'),
    path('<uuid:pk>/demo', views.ProcessMessage.as_view(), name='index'),
]

app_name='chatbot'
URL模式=[
路径('demo',views.ProcessMessage.as_view(),name='index'),
路径('/demo',views.ProcessMessage.as_view(),name='index'),
]
我在
get
方法中获取obj和pk的值,但我也希望在
post
方法中获取这些值(当前没有获取值)


我需要def Post方法中URL的id/pk来获取用户信息(不,我不想使用request.user)

您的模板显示您正在将表单提交到没有pk的URL:

{% url 'chat:index' %}
您应该在反转URL时包含pk,例如

{% url 'chat:index' pk %}
您需要在模板上下文中包含pk,例如

return render(request, self.template_name, {'form': ChatForm(), 'pk': pk})

我看到您对
/demo/
/demo/
使用了相同的视图
ProcessMessage
。我建议对这两个URL使用不同的视图,我认为这将有助于避免类似问题。

request.POST.get('pk')
,但显然您需要一些东西(表单/JS)来在POST request中发送
pk
。我也有同样的想法,但我希望有一些直接的方法,如果可能
self.kwargs.get('pk'))
对于GET和POST请求的工作方式应该相同。请显示您的模板。@Alasdair我试过了,显示的值是无。哪一行显示的值是
None
?请回答问题,并按照我的要求附上模板。