Обновление / редактирование объекта django после выбора его из выпадающего списка - PullRequest
0 голосов
/ 21 января 2019

Я хочу обновить / отредактировать продукт со страницы, нажав кнопку формы (ОБНОВИТЬ) после выбора продукта из раскрывающегося списка или списка автозаполнения.

List.html страница работает нормально при нажатиина странице ОБНОВЛЕНИЕ update.html страница не может проанализировать данные POST.Вручную я мог получить доступ к update.html с суффиксом pk (/ update / 1 /), он тоже работает нормально.

Как я могу передать только значение pk в url?

views.py

class ProductUpdateView(UpdateView):
    template_name = 'update.html'
    model = Product
    fields = ['name', 'description', 'image', 'file',]
    success_url = '/list/'

class ProductsView(ListView,):
    template_name = 'list.html'
    model = Product

urls.py

urlpatterns = [
    url(r'^list/$', ProductsView.as_view(), name='list'),
    url(r'^update/(?P<pk>[0-9]+)/$', ProductUpdateView.as_view(), name='update'),
]

list.html

<body>
 <form method='POST' action='/update/'> {% csrf_token %}
  <select name='pk'>
   {% for obj in object_list %}
    <option value='{{ obj.id }}'>{{ obj.name }}</option>    
   {% endfor %}
  </select>
  <input type="submit" value='UPDATE'>
 </form>
</body>

1 Ответ

0 голосов
/ 21 января 2019

Вы можете сделать это, используя только <select>

<select name="select_path" id="select_path"
  ONCHANGE="location = this.options[this.selectedIndex].value;">
  {% for obj in object_list %}
   <option value="{% url app_name:update obj.id %}">{{ obj.name }} 
   </option>
  {% endfor %}
</select>

Вам просто нужно изменить значение параметра, я не знаю точного URL, настройте его согласно вашему требованию.

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