Django模型没有保存到数据库

时间:2014-05-08 03:09:53

标签: python django sqlite

好吧,我正在研究的一个小团队的项目是django和开发webapp的新手,突然间我们失去了将模型对象添加到数据库的所有能力。我们都完全失败了。以下是我们目前正在调试的地方。

views.py

def postOp(request):
    if request.method == 'POST':
        operation = request.POST.get("operation","noop")

        #Registered user operations
        if request.user.is_authenticated():
            username = request.session.get("member","Guest")
            user = ToolUser.objects.get(name=username)
            zipcode = user.location
            .
            .
            #AddTool
            if operation == "addTool":
               toolName = request.POST.get("toolName","N/A")
               toolDesc = request.POST.get("toolDesc","N/A")
               print("In addtools")
               user.submitTool(toolName, toolDesc)
               print("SUBITTED")
               return HttpResponseRedirect("tools")

模型

def submitTool(self, Nname, Ndescription):
        print("IN SUBMIT ")
        t = Tool(name=Nname, owner=self.id, shed=self.id, description=Ndescription, currOwner=0, location=self.location)
    print("tool made :", t.name, ", ", t.owner, ", ", t.shed, ", ", t.description, \
                      ", ",t.currOwner ,", ", t.location)
    t.save()
    print("saving tool")

它似乎一直到t.save(),然后中断。使用单独的工具来查看数据库,显然没有保存到表中。但是以下输出到终端,它似乎确实创建了这个实例。

终端输出:

在addtools中

IN SUBMIT

工具制作:tooltest,2,2,描述,0,12345

编辑:忘了更新这个,发现问题,原来一个字段是空的,而django拒绝保存有空字段的东西。

1 个答案:

答案 0 :(得分:-1)

等等,您有一个名为saveTool()的模型函数但是您正在调用user.savetool(我认为它是django.contrib.auth.user)?如果你说解决了,那就好了。

最好只填充postOp()函数中的对象并将其保存在那里。如果saveTool()确实是模型类的一部分,那么您将实例化一个模型对象,然后调用一个方法来实例化另一个函数。

我的观点是,从样式的角度来看,代码是不必要的复杂,或者这需要更多的数据来真正解决那里发生的事情。