2015-05-23 39 views
0

我當前的視圖執行刪除和創建功能。複選框和POST

您可以使用複選框刪除項目。

有無論如何做一個可編輯的表嗎? 我的意思是也許改變一種方式顯示我的數據庫在模板,並添加一個保存按鈕?

下面是截圖

http://postimg.org/image/uromygv7f/

這裏的views.py

def task1(request): 

    if request.POST and 'create' in request.POST: 
     form = AuthorForm(request.POST) 
     if form.is_valid(): 
      form.save() 
     args = {} 
     args.update(csrf(request)) 
     args['form'] = form 
     args['authors'] = Author.objects.all() 
     return render_to_response('tasks/task1.html',args) 
    elif request.POST and 'delete' in request.POST: 

     """form= AuthorForm() 
     if form.is_valid(): 
      form.save() 
     args = {} 
     args.update(csrf(request)) 
     args['form'] = form 
     args['authors'] = Author.objects.all()""" 

     Author.objects.filter(id__in=request.POST.getlist('item')).delete() 
     return render_to_response('tasks/task1.html') 
    else: 
     form = AuthorForm() 




    args = {} 
    args.update(csrf(request)) 

    args['form'] = form 
    args['authors'] = Author.objects.all() 

    return render_to_response('tasks/task1.html',args) 

和模板

<form action="/task1/" method="post">{% csrf_token %} 
    <ul> 
     {{ form.as_table}} 
    </ul> 
    <input type="submit" value="Create" name="create"/> 

    {% if authors.count > 0 %} 
    {% for author in authors %} 
    <ul> 
     {{author.id}} {{author.name}} {{author.body}} {{author.deletes }}  <input type="checkbox" name="item" value="{{author.pk}}"> 
    </ul> 
    {% endfor %} 
    {% endif %} 
    <input type="submit" value="Delete" name="delete"/> 
</form> 
+0

我不明白你的問題。如果刪除其他項目,數據庫中的ID號碼不會更改:他們爲什麼要這樣做?如果你有兩個問題,你應該單獨問問他們。 –

+1

請不要變色你的問題。編輯後的帖子與原始渲染不同,我的問題也不相關。 – Wtower

+1

對不起,想到編輯顯示給大家。 –

回答

0

Django documentation: Models

id字段會自動添加,但是此行爲可以被覆蓋。見Automatic primary key fields

這是一個自動遞增字段,允許在將新記錄插入表中時生成唯一編號。此號碼在更新或刪除後不會自動更改。欲瞭解更多信息,請參閱MySQL reference(實現因不同數據庫而異,但您可以獲得一個想法)。

由於id字段不會自動更改,排序不應受到影響。您仍然可以對id進行排序。如果您希望在模板中顯示自動增量(1,2,3,...)字段,則可以使用{{ forloop.counter }}