Как мне редактировать и удалять данные в Django?

Я использую django 1.0, и я создал свои модели, используя пример из книги Django. Я могу выполнять основную функцию добавления данных; теперь мне нужен способ получить эти данные, загрузить их в форму (change_form ?! или что-то в этом роде), РЕДАКТИРОВАТЬ и сохранить обратно в БД. Во-вторых, как мне УДАЛИТЬ данные, которые находятся в БД? т.е. ищите, выбирайте и затем удаляйте!

Пожалуйста, покажите мне пример кода, который мне нужно написать на моих view.py и urls.py для выполнения этой задачи.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
12
0
44 294
3

Ответы 3

Допустим, у вас есть образцовый сотрудник. Чтобы отредактировать запись с первичным ключом emp_id, выполните:

emp = Employee.objects.get(pk = emp_id)
emp.name = 'Somename'
emp.save()

чтобы удалить, просто сделайте:

emp.delete()

так что полный вид будет:

def update(request, id):
   emp = Employee.objects.get(pk = id)
   #you can do this for as many fields as you like
   #here I asume you had a form with input like <input type = "text" name = "name"/>
   #so it's basically like that for all form fields
   emp.name = request.POST.get('name')
   emp.save()
   return HttpResponse('updated')

def delete(request, id):
   emp = Employee.objects.get(pk = id)
   emp.delete()
   return HttpResponse('deleted')

В urls.py вам понадобятся две такие записи:

(r'^delete/(\d+)/$','myproject.myapp.views.delete'),
(r'^update/(\d+)/$','myproject.myapp.views.update'),

Предлагаю вам взглянуть на документы

Для тех, кто сейчас задается этим вопросом: вместо того, чтобы переходить непосредственно к request.POST.get, вы определенно захотите использовать is_valid(). См. Документацию django по валидации ... он довольно обширный и очень хорошо спроектированный.

eykanal 24.04.2015 19:53

Прочтите следующее: Сайт администратора Django. Затем уточните свой вопрос с конкретными деталями.

эта тема не имеет ничего общего с админкой сайта. он запрашивает метод экземпляра модели (удалить).

israkir 16.02.2010 20:01

@israkir: встроенный сайт администратора Django позволит пользователю удалять экземпляры модели и редактировать данные. Вот что он делает. В теме написано «загрузить его в форму (change_form ?! или что-то еще), ИЗМЕНИТЬ и сохранить обратно в БД». Это то, что делает админка.

S.Lott 16.02.2010 21:09

Для выполнения любого из этих действий вам нужно использовать так называемые запросы.

проверьте ссылку ниже для действительно отличной документации по этому поводу! (https://docs.djangoproject.com/en/2.2/topics/db/queries/)

Чтобы удалить данные:

b = ModelName.objects.get(id = 1)
b.delete()

Это удалит объект модели с идентификатором 1

Для редактирования данных:

b = ModelName.objects.get(id = 1)
b.name = 'Henry'
b.save()

Это изменит имя объекта модели с идентификатором 1 на Генри.

Другие вопросы по теме