перенаправление с первичным ключом от views.py - PullRequest
0 голосов
/ 10 января 2020

У меня есть представление

 (user_list.html) 
 {% extends "base.html" %}
 {% load static %}




 {% block content %}
   <div class="list_main">
     <div class="container">
     {% for user in user_list %}

     <ul>
       <li><a href="{% url 'myapp:detail' pk=user.pk %}">
        <div class="jumbotron">
         <h4 class="list_content">{{user.name}}</h4>
        </div>
       </a></li>
    </ul>
    {% endfor %}

  <div class="bttn">
  <p><a type="button" class="btn btn-primary" href="{% url 'myapp:user' %}">Add</a></p>
 </div>

 </div>
</div>
{% endblock %}

Здесь с помощью

 <p><a type="button" class="btn btn-primary" href="{% url 'myapp:user' %}">Add</a></p>

Я звоню (views.py -> UserView)

 def UserView(request):

      response = requests.get('https://randomuser.me/api')
      data = response.json()

      title = data['results'][0]['name']['title']
      first = data['results'][0]['name']['first']
      last = data['results'][0]['name']['last']


      final_name = " ".join([first,last])

      #############################################
      final_name = ". ".join([title, final_name])          #Final name of the user


      #############################################
      agee = data['results'][0]['dob']['age']               # age of the user


      user = UserData.objects.create( name = final_name, age= agee, gender = gender)
      user.save()


      return redirect('detail', pk=user.pk) #This is not working

то, что я хочу сделать, это всякий раз, когда нажимается кнопка из шаблона (user_list. html). Я хочу ввести эту функцию в моем файле views.py, выполнить операции и перенаправить на

 (path('detail/<int:pk>/', views.UserDetailView.as_view(), name='detail'),)

Мои views.UserDetailView

 class UserDetailView(DetailView):
 model = UserData
 context_object_name = 'user_detail'
 template_name = 'user_detail.html'

Как показано в коде в (UserView (запрос )), Я попытался «вернуть редирект (« detail », pk = user.pk)», это не работает.

Также скажите, пожалуйста, есть ли более аккуратный и эффективный способ для выполнения операций, представленных в (UserView (запрос)), когда кнопка нажата (user_list. html), а затем перенаправлена ​​из «UserView» в ((путь ('detail //', views.UserDetailView.as_view (), name = 'detail') ))

1 Ответ

0 голосов
/ 10 января 2020

Вы пропустили имя приложения myapp при использовании перенаправления:

return redirect('myapp:detail', pk=user.pk)
...