당신에게 맞는 경우, 모든 일은 가장 쉽게 자바 스크립트로 할 수 있습니다. 생성/편집/삭제를위한 핸들러를 생성하십시오. Create는 GET을위한 빈 양식을 렌더링하고 POST에 대한 유효성을 확인/저장하여 속할 판매에 새 항목을 추가합니다. 수정/삭제는 명백하게 따라야합니다.
아마 핸들러가 HTML 부분을 렌더링하고, JavaScript를 사용하여 DOM을 GET으로 가져오고 POST로 서버에 데이터를 변경합니다.
모델을 가정하면,
class Sale(models.Model):
items = models.ManyToMany('Item', related_name='sales')
# ...
class Item(models.Model):
# ...
그런 다음 우리는 다음과 같은 몇 가지 핸들러를 만들 수 있습니다 : 프론트 엔드 코드에 대한
def create_item(request, saleID=""):
sale = get_object_or_404(Sale, <ID>=saleID) # <- get the sale obj
if request.method == 'POST':
form = ItemForm(request.POST) # <- could take the sale here and do .add() in the save()
if form.is_valid():
i = form.save()
sale.items.add(i) # <- or, add in the view here
if request.is_ajax():
return HttpResponse('ok')
# redirect with messages or what have you if not ajax
else:
# make a blank form and whatnot
# render the form
def edit_item(request, id|pk|slug=None):
item = get_object_or_404(Item, slug=slug)
if request.method == 'POST':
# do the form is_valid, form save, return 'ok' if ajax, redirect if not ajax
else:
form = EditForm(instance=item)
# render the form
def delete_item(request, id|pk|slug=None):
if request.method == 'POST':
# delete the item and redirect, or just return "ok" if is_ajax
# render confirmation dialog
, 내가 http://api.jquery.com/load/ HTTP의 조합을 사용 : //api.jquery를 .com/jQuery.get/및 http://api.jquery.com/jQuery.post/ 등 모든 자바 스크립트 프레임 워크가 수행합니다.
감사합니다. 나는이 방향으로 무언가를 시도 할 것이다! – vmassuchetto
권자, 누군가 2014 년 5 월에 이것을 downvoted ... 음 .. 그래, 지금이 일을 더 나은 방법이있을 수 있습니다, IDK : D 조. –