Аякс и Джанго формы - PullRequest
       5

Аякс и Джанго формы

3 голосов
/ 17 января 2011

Я хотел бы добавить Ajax в мою форму администратора для редактирования модели.Модель имеет поле списка.Я бы хотел, чтобы Ajax создал список входов с кнопками добавления и удаления, автоматически перезванивая на сервер, когда пользователь нажимает «добавить» или «удалить».

Я застрял на следующем: как виджет узнает, что такое модель поддержки?Если он не знает, как он может обновить значения?(Я хотел бы предоставить URL-адреса вроде api/remove-list-item?pk=foo&item=bar для внешнего интерфейса.)

Это заставляет меня думать, что это не соответствует общей философии фреймворка Django.Вместо этого, возможно, мне следует хранить значения локально и отправлять их через тот же процесс проверки, что и остальные данные.Но я немного не уверен, как это сделать.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

В urls.py создайте правило вроде:

(r'^api/remove-list-item/(?P<id>\d+)$', 'yourApp.views.remove'),

тогда в yourApp.views есть что-то вроде:

from django.shortcuts import get_object_or_404, redirect

def remove(request, id):
  dbObj = get_object_or_404(YourModel, id=id)
  dbObj.active = False # Or whatever you want to do with the object
  dbObj.save()

  return redirect('some-view')

Затем вы можете делать запросы, такие как / api / remove-list-item / 123

0 голосов
/ 26 января 2011

Я делаю что-то похожее на это (хотя и не в форме администратора). Я не уверен, является ли это рекомендуемым способом ведения дел ... но, похоже, он мне подходит.

У меня есть действие, установленное в html-форме в шаблоне, которое вызывает представление, которое в основном имеет единственную задачу - обновить данные в базе данных и вернуть «успех» (или все, что мне нужно, чтобы оно возвращалось).

На стороне шаблона я также использую плагин jquery form , который я использую для обновления div, чтобы показать новое значение.

Опять же, я не уверен, рекомендуют ли это другие, но я чувствую, что это имеет смысл .... и, кажется, работает просто отлично.

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