簡體   English   中英

form.save() 不保存

[英]form.save() not saving

出於某種原因,我無法將 form.save() 保存到我的數據庫中。 我能夠創建表單,並將表單傳遞給我的模板,但沒有任何內容保存到數據庫中。 我已經搞砸了好幾個小時,但無法讓它工作。

任何幫助表示贊賞。

這是相關代碼..

這是我的 add/model.py

from django.db import models
from django.forms import ModelForm

class addTask(models.Model):
    task = models.CharField('Task',  max_length=60)
    taskNotes = models.CharField('Notes', max_length=600)

    def __unicode__(self):
        return self.task

class addTaskForm(ModelForm):
    class Meta:
        model = addTask

模板/添加THEtask.html。 這被正確引用。

    <form action="/todo/" method="post">
    {{ form.as_p }}
    <input type="submit" value="Add Task" />
    </form>

添加/views.py

from django.shortcuts import render_to_response
from django.template import RequestContext
from myToDo.add.models import addTask, addTaskForm

def create_task(request):
    if request.method == 'POST':
        form = addTaskForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = addTaskForm()
    return render_to_response('addTHEtask.html', {'form': form})

要正確調試您的代碼,請將您的模板更改為:

<form action="/todo/" method="post"> {{ csrf_token }}
    {{ form.errors }}
    {{ form.as_p }}
    <input type="submit" value="Add Task" />
</form>

您的觀點是:

def create_task(request):
    if request.method == 'POST':
        form = addTaskForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = addTaskForm()
    return render_to_response(
                     'addTHEtask.html', 
                     {'form': form}, 
                     context_instance=RequestContext(request))

我認為 context_instance 不會對您有任何意義,但在使用 render_to_response 時傳遞它通常是正確的。

在表單中顯示錯誤可能有助於您找出實際問題所在。 您的代碼看起來(大部分)正確,除了缺少 csrf_token。 添加令牌並顯示任何錯誤,應該會告訴您出了什么問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM