router.register默认的POST方法将空值写入postgres DB

时间:2018-09-17 06:16:15

标签: python postgresql django-forms django-rest-framework django-views

我使用Django 1.8.0和POSTGRESQL进行了python项目设置。我的模型如下:

  class poll_db(models.Model):
      p_pk = models.AutoField(primary_key=True)
      p_name = models.CharField(max_length=256)
      p_desc = models.CharField(max_length=512)

我在urls.py上向路由器注册了一个发布网址:

    router.register(r'newpoll', views.createPoll)

我正在尝试使用以下URL进行默认的POST呼叫

http://localhost:8080/newpoll/

我的postBody看起来像:

  {
      "name": "What's the weekend plan?",
      "desc": "Poll to decide on the weekend plan"
  }

该请求到达服务器,并且在数据库上创建了一个新条目。但是当我查看创建的条目时,除了p_pk

之外,它具有空值
    14 |                  |  

表示将值传递为空。但是,当我尝试覆盖views.py上的默认create方法时,我将这些值视为请求的一部分并添加到db中就可以了。

我只想跳过编写将其添加到数据库中的方法,并使用默认的create方法。

非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我的坏。我在序列化程序上有只读字段。