любой прямой метод для доступа к Dynami c URL в пост-метод - PullRequest
0 голосов
/ 17 марта 2020

в 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'),
]

Я получаю значения obj и pk внутри get метода, но я хочу получить эти значения внутри * Метод 1008 * также (получение значения Нет в настоящее время)

Мне нужен id / pk из URL в def Метод Post для получения информации о пользователе (нет, я не хочу использовать request.user)

1 Ответ

1 голос
/ 17 марта 2020

Ваш шаблон показывает, что вы отправляете форму на URL без pk:

{% url 'chat:index' %}

Вы должны включить pk при обращении URL, например,

{% url 'chat:index' pk %}

You ' Вам нужно будет включить pk в контекст шаблона, например,

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

Я вижу, что вы используете одно и то же представление ProcessMessage для /demo/ и /<pk>/demo/. Я бы порекомендовал использовать другое представление для обоих URL, думаю, это поможет избежать подобных проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...