数据库在django中多次存储数据

时间:2014-08-30 07:07:27

标签: python django

我正在制作一个小网站,通过它来学习django

所以我创建了一个名为Writer的数据库模型

class Writer(models.Model):
  name = models.CharField(max_length=20);

我做了一个观察(控制器)来注册作家

def addwriter(request,name):
  nimos = Writer(name=name);
  nimos.save();
  return render_to_response("addJournalist.html",{"name":nimos.name});

及其网址:

(r'^new/(.+)/',addwriter)

注意:我知道应该使用帖子形式来完成,但我这样做是因为这本书还没有达到表格。

当我访问网页中的作者时: 图

def mainjournal(request):
   writers = Writer.objects.all();
   return render_to_response("journalMain.html",{"writers":writers});

模板部分     {%block content%}

  {% for writer in writers %}

    <p>{{ writer.name }} and his id is {{ writer.id }}</p>


 {% empty %}

      good luck finding writers man


 {% endfor %}



 {% endblock %}

它为我提供了每个名称,我在另一个视图中添加了三个名称:

示例(在网页中添加了george):

乔治和他的身份证是22

乔治和他的身份证明是23

George / img和他的身份证明是24

我不知道为什么所以我问你为什么

2 个答案:

答案 0 :(得分:1)

在您的添加者视图中添加一些日志。就像这样

logger = logging.getLogger(__name__)

def addwriter(request,name):
  logger.debug("the coming request is: {}, and the name is: {}".format(request, name))
  nimos = Writer(name=name);
  nimos.save();
  return render_to_response("addJournalist.html",{"name":nimos.name})

我想你就像@Rohan说的那样,你向这个观点发送了3个请求。你的python代码工作正常。

这是我天真的测试代码

from django.test import TestCase
from .models import Writer


class WriterTestCase(TestCase):

    def test_writer_name_function(self):
        for i in range(3):
            self.client.get("/new/George/")
        writer_set = Writer.objects.all()
        self.assertEqual(writer_set.count(), 3)

PS:在添加记录器代码之前,请确保已在django中设置日志记录

答案 1 :(得分:1)

抱歉,我现在知道答案我只是通过嵌入在html中的错误方式包含静态文件的css和imgs所以浏览器提出了三次请求我很抱歉打扰你