Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python: Web

Войти
Регистрация
Восстановить пароль
 
Baac
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 37
#1

Освоить удаление данных из БД методом POST - Python

31.03.2016, 18:17. Просмотров 243. Ответов 9
Метки нет (Все метки)

Добрый день!
Пытаюсь освоить удаление данных из бд методом POST ( Знаю, что в django есть такая вещь как Form, но хочу попробовать сперва сделать это сам)

Вот содержание:
views.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from django.shortcuts import render
from django.http import HttpResponseRedirect, HttpResponse
from .models import News
 
from django.core.urlresolvers import reverse
# Create your views here.
 
def news(request):
    listNews =  News.objects.all()
    context = {'listNews': listNews}
    return render(request, 'news/index.html', context)
 
def delete(request):
    delNews = request.POST['news']
    d = News.objects.filter(id=delNews).delete()
    return reverse('news:delete', kwargs={'news.id'})
urls.py
Python
1
2
3
4
5
6
7
8
9
from django.conf.urls import url
from . import views
 
 
app_name='news'
urlpatterns = [
    url(r'^$', views.news, name='news'),
    url(r'^delete/$', views.delete, name='delete'),
]
index.html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{% if listNews %}
<form action="{% url 'news:delete' news.id %}" method="post">
{% for news in listNews %}
{% csrf_token %}
    <h4>{{news.title}}</h4>
    {{news.text}}
    {{news.author}}
    {{news.date}}
    <input type="text" name="news" id="news{{ forloop.counter }}" value="{{ news.id }}" />
    <input type="submit" />
{% endfor %}
</form>
<p>No news avaliable</p>
{% endif %}
Собственно при загрузке страницы получаю следуюшию ошибку:
Reverse for 'delete' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['$delete/$']
Помогите исправить и сказать, где я ошибку допустил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2016, 18:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Освоить удаление данных из БД методом POST (Python):

Передача данных методом POST - Python
с помощью этого скрипта он авторизируется на сайте. но комментарий не добавляет. в чем ошибка? # -*- coding: cp1251 -*- import...

Как войти на сайт методом POST? - Python
Могли бы показать на примере -...

Как передать id сообщения методом post на его удаление? - PHP
Здравстуйте. У меня есть форма, куда циклом из бд подгружаются сообщения пользователю. Нужно, чтобы под каждым сообщением была...

Удаление данных из POST - C# ASP.NET
Есть страница, которая сама себе отправляет текст методом POST, но когда обновляешь страницу, текст приходит еще раз. Есть ли какая-то...

Отправка данных методом POST - PHP
Добрый день. Подскажите пожалуйста,имеется следующий код: &lt;form action=&quot;/experts/test.php&quot; method=&quot;POST&quot;&gt; &lt;? $n = 0; ...

Передача данных методом POST - PHP
Приветствую!! Есть две обычные формы, В первой есть текстовое поле: &lt;form action=&quot;1.php method=&quot;post&quot; name=&quot;forma-1&quot;&gt; &lt;input...

9
arctblake
50 / 50 / 16
Регистрация: 03.12.2015
Сообщений: 167
31.03.2016, 18:31 #2
У вас delete не принимает аргументов, а Вы ему передаете id. Вы там забыли сохраняющую группу сделать в регулярке
0
Baac
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 37
31.03.2016, 18:33  [ТС] #3
А можете указать, как это сделать, я только начинаю и не совсем вас понял.
0
arctblake
50 / 50 / 16
Регистрация: 03.12.2015
Сообщений: 167
31.03.2016, 18:34 #4
И еще вы начинаете цикл после того, как уже используете news. Сначала надо начать цикл, а то откуда у Вас news-то взялось во второй строчке шаблона?
0
Baac
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 37
31.03.2016, 18:35  [ТС] #5
А можете указать, как это сделать, я только начинаю и не совсем вас понял.
0
arctblake
50 / 50 / 16
Регистрация: 03.12.2015
Сообщений: 167
31.03.2016, 18:40 #6
r'^delete/(\d+)/$'

И сама вьюха у Вас должна принимать доп. аргумент. То есть укажите в списке параметров помимо request, например, id.

Добавлено через 4 минуты
Вообще у Вас там что-то странное. Вы хотите, чтобы на стр высвечивались сразу все новости, а Вы могли вести номер новости, которую нужно удалить и нажать кнопку?
0
Baac
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 37
31.03.2016, 18:42  [ТС] #7
Это будет следующий шаг, я бы хотел сперва с таким способом разобраться
0
arctblake
50 / 50 / 16
Регистрация: 03.12.2015
Сообщений: 167
31.03.2016, 18:42 #8
И почему вьюха возвращает reverse? Прочитайте оф туториал, он неплохой
0
Baac
0 / 0 / 0
Регистрация: 09.03.2013
Сообщений: 37
31.03.2016, 18:43  [ТС] #9
Вот я и почитал и на stack заходил и там написано, что надо reverse брать
0
TimeTwo
71 / 71 / 32
Регистрация: 29.11.2009
Сообщений: 326
01.04.2016, 15:25 #10
Baac, плохо читали, так советуют
Python
1
2
return HttpResponseRedirect(reverse('settest:question',  
                                        kwargs={'test_id':test_id,}))
Добавлено через 6 минут
Цитата Сообщение от Baac Посмотреть сообщение
delNews = request.POST['news']
сдесь вы принимаете с POST запроса `news`,а здесь
Цитата Сообщение от Baac Посмотреть сообщение
<input type="text" name="news" id="news{{ forloop.counter }}" value="{{ news.id }}" />
передаете не `news` а `news"цифра"` ... странно не правда ли ? и зачем тип инпута 'text' ?

а ошибка банально в этой строке :
Цитата Сообщение от Baac Посмотреть сообщение
<form action="{% url 'news:delete' news.id %}" method="post">
потому что вы банально передаете id зачем то ,но не получаете его ... ни в урл ни во вьюхе... а собственно зачем он вам, если вы используете форму ?
0
01.04.2016, 15:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2016, 15:25
Привет! Вот еще темы с ответами:

Обработка данных из формы методом POST - Java EE
Здравствуйте. Столкнулся с небольшой трудностью: Есть файл index.jsp, которая вводит логин и пароль. Метод формы POST. Обработчик...

Послать массив данных POST методом - Программирование Android
Столкнулся с проблемой. Как правильно сделать submit массив данных на сайт, вида: ...

Переход на страницу с передачей данных методом POST - PHP
Добрый день. Помогите решить проблему. Есть страница с инпутами текстовыми. По нажатию на кнопку необходимо перейти на другую страницу...

Передача POST методом данных из плоского списка - PHP
Здравствуйте. Есть такой вот код: &lt;div id=&quot;proekt&quot;&gt; &lt;p class=&quot;dob&quot;&gt;KALKULATER&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;form.php&quot;&gt; &lt;select...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.