首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用django POST框架发布到模型

如何使用django POST框架发布到模型
EN

Stack Overflow用户
提问于 2015-03-09 13:25:24
回答 2查看 64关注 0票数 0

我是Django的新手,正在尝试使用restframework。我已经创建了一个简单的模型,我想通过REST和发送JSON数据发布到这个模型。

这就是我到目前为止所做的:

models.py

代码语言:javascript
复制
class Contact(models.Model):
    name = models.CharField(max_length=120)
    email = models.EmailField()
    phone = models.CharField(max_length=15)
    city = models.CharField(max_length=120)
    comment = models.CharField(max_length=500)
    timestamp = models.DateTimeField(auto_now_add=True)

serializers.py

代码语言:javascript
复制
class ContactSerializer(serializers.ModelSerializer):

    class Meta:
        model = Contact
        fields = ('name', 'email', 'phone', 'city', 'comment', 'timestamp')

urls.py

代码语言:javascript
复制
url(r'^api/contact/(?P<pk>[0-9]+)/$', ContactDetail.as_view()),

views.py

代码语言:javascript
复制
class ContactDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Contact.objects.all()
    serializer_class = ContactSerializer
    format = None

但是,当我试图发布到http://127.0.0.1:8001/api/contact时,我会得到这个错误

代码语言:javascript
复制
13. ^index.html#/verifyEmail/(?P<key>\w+)/$ [name='account_confirm_email']
14. ^api/contact/(?P<pk>[0-9]+)/$
The current URL, api/contact, didn't match any of these.

问题

如何将数据发布到我的模型并保存它?

EN

回答 2

Stack Overflow用户

发布于 2015-03-09 14:10:26

你这里有几个问题:

  1. 您正在使用generics.RetrieveUpdateDestroyAPIView,它将提供PUT、GET和DELETE方法。如果您希望能够将(这意味着创建)发布到该端点,则应该使用另一个端点。将其替换为viewsets.ModelViewSet,它将提供所有CRUD方法。不要忘记导入模块(+更多信息)。
  2. 您正在尝试自己构建urls,这是不正确的,drf提供路由器来自动构建它们。只要跟着医生,他们就会得到很好的解释。

一旦您修复了这些问题,您就可以发布到/api/contact/来创建一个新的问题。

票数 0
EN

Stack Overflow用户

发布于 2015-03-09 15:05:17

您的主要问题是这里的正则表达式:

代码语言:javascript
复制
url(r'^api/contact/(?P<pk>[0-9]+)/$', ContactDetail.as_view())

与URL不匹配:

代码语言:javascript
复制
http://127.0.0.1:8001/api/contact

匹配应该更类似于以下内容:

代码语言:javascript
复制
http://127.0.0.1:8001/api/contact/123412213/

包括尾随斜杠/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28943133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档