在 Django 项目中使用 sweetpie 将多个对象保存在同一模型中

Posted

技术标签:

【中文标题】在 Django 项目中使用 sweetpie 将多个对象保存在同一模型中【英文标题】:Save multiple objects in same model using tastypie in a Django project 【发布时间】:2015-06-06 00:12:53 【问题描述】:

我有一个具有以下模型的 Django 项目:

from django.contrib.auth.models import User

class InstalledApps(models.Model):
    user = models.ForeignKey(User)
    app_package_name = models.CharField(max_length=50)

我正在使用tastepie 创建一个POST API 端点,以便用户可以在单个API 调用中将多个对象发布到InstalledApps 模型:

类 InstalledAppsResource(模型资源): 元类: queryset = InstalledApps.objects.all() 资源名称 = '应用程序' 授权=授权() 身份验证 = 身份验证() #validation = InstalledAppsValidation() list_allowed_methods = ['post', 'get'] always_return_data = True def 水合物(自我,捆绑): usrname = bundle.request.META['HTTP_AUTHORIZATION'][7:].split(':')[0] usr = User.objects.get(username__exact=usrname) 如果不是 bundle.obj.pk: bundle.obj.user = usr 退货捆绑

当我尝试 POST 到此端点时:

curl -X POST -H "Content-Type: application/json" -H "Authorization: ApiKey username:abcde" -d '"app_package_name": ["pqr", "abc", "xyz"]' http://127.0.0.1:8000/api/v1/apps

我得到回应:

"app_package_name": "['pqr', 'abc', 'xyz']", "id": 16, "resource_uri": "/api/v1/apps/16"

即它不是在 InstalledApps 表中包含三行,而是创建一个将 InstalledApps.app_package_name 设置为 ['pqr', 'abc', 'xyz'] 的单行

如何在 InstalledApps 表中保存三行?

谢谢!

【问题讨论】:

你试过用["app_package_name": "pqr", "app_package_name": "abc", "app_package_name": "xyz"]的数据发帖吗? 【参考方案1】:

试试这个,

URI: http://127.0.0.1:8000/api/v1/apps

方法:补丁

要发送的数据:


"objects": [
      "app_package_name": "pqr",
      "app_package_name": "abc",
      "app_package_name": "xyz"
 ]

卷曲命令:

curl -X PATCH -H "Content-Type: application/json" -H "Authorization: ApiKey username:abcde" -d '"objects": ["app_package_name":"pqr","app_package_name":"pqr"]' http://127.0.0.1:8000/api/v1/apps

【讨论】:

这行得通,但如果我编辑我的代码并添加这个code,那么响应对于“n”个对象有“n”个状态值。但是,如果我只想在输出响应中使用 "status": 0 怎么办?

以上是关于在 Django 项目中使用 sweetpie 将多个对象保存在同一模型中的主要内容,如果未能解决你的问题,请参考以下文章

django + sweetpie:我如何发布以替换数据而不得到“重复键值违反唯一约束”

使用其他视图的 sweetpie api

Angularjs路由与django的网址

如何分析 Django 的扩展瓶颈?

美味派api没有在json结果中显示ForeignKey

如何从模型中获取一个项目并使用表单 django 将相同的项目保存在另一个模型中