django-tastypie - 如何通过关系实现多对多

2024-01-01

我正在为一个项目开发 API,并且通过 OrderProducts 建立订单/产品关系,如下所示:

在目录/models.py中

class Product(models.Model):
    ...

按顺序/models.py

class Order(models.Model):
    products = models.ManyToManyField(Product, verbose_name='Products', through='OrderProducts')
    ...

class OrderProducts(models.Model):
    order = models.ForeignKey(Order)
    product = models.ForeignKey(Product)
    ...

现在,当我通过 API 加载订单时,我也想获取相关产品,所以我尝试了这个(使用 django-tastypie):

按顺序/api.py

class OrderResource(ModelResource):
    products = fields.ToManyField('order.api.OrderProductsResource', products, full=True)

    class Meta:
        queryset = Order.objects.all()
        resource_name = 'order'

class OrderProductsRessource(ModelResource):
    order = fields.ToOneField(OrderResource, 'order')

    class Meta:
        queryset = OrderProducts.objects.all()
        resource_name = 'order/products'

这给了我这个错误消息:“'Product'对象没有属性'order'”。所以我不确定有什么问题或缺失,它可能也需要我的产品资源中的某些内容,但我尝试了几种方法但没有成功。欢迎任何帮助:)


问题出在这一行:

order = fields.ToOneField(OrderResource, 'order')

这个错误非常简单。Product确实没有名为的属性order. Your OrderProduct连接表确实如此,但您的 M2M 没有返回OrderProduct它返回Products.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django-tastypie - 如何通过关系实现多对多 的相关文章

随机推荐

  • JavaDoc:在哪里向文档添加注释/评论?

    当用 C 编码时 我总是找到标签remarks对于提供有关类或方法的实现的注释 或者提供有关我正在实现的理论的信息非常有用 我现在使用 Java 但找不到合适的 JavaDoc 标签 也许在 Java 中你可以用不同的方式来完成这个任务 有
  • 如何获得aprun排名

    我正在尝试使用 aprun 运行多节点作业 但是 我不知道如何在 bash 环境中获取排名 或作为每个作业的 ID 的任何内容 就像这个简单的工作 aprun n 8 N 2 examplebashscript sh 我怎样才能获得每个衍生
  • 在 Xcode 中,如何使用您拥有源代码的外部库进行调试?

    我在 Xcode 中为 OS X 构建了一个大型 C C Objective C 项目 该项目链接到预构建的 Qt5 库 这一切都运行得很好 直到出现崩溃并且我得到了包含 Qt 函数的堆栈跟踪 如果我单击 Qt 函数之一的堆栈框架 Xcod
  • 在 R 中安装 tar.gz 包时出错

    当我尝试安装 R 包时nlopt 2 4 2 tar gz from http ab initio mit edu nlopt nlopt 2 4 2 tar gz http ab initio mit edu nlopt nlopt 2
  • 如何使 Mercurial 按提交日期对 `hg log -G` 的输出进行排序?

    我怎样才能使 Mercurial 对图形日志输出进行排序hg log G按提交日期 Using hg log r sort all date 无需图形日志选项即可工作 如 1 https stackoverflow com question
  • JavaScript 复选框总和

    我有一个任务 我应该创建一个 订单 页面 其中包含复选框格式的表单和项目 我用 javascript 编写了一个函数 将标记的复选框的值添加在一起并返回总计 昨天工作正常 但我昨天可能做了一些事情而没有注意到 并且它不再添加值了 这是函数
  • 低级鼠标和键盘钩子回调在哪个线程中运行?

    我正在设置一个低级鼠标钩与SetWindowsHookEx HANDLE handle SetWindowsHookEx WH MOUSE LL callback GetModuleHandle NULL NULL 因为这是一个低级回调 所
  • 关于 CSS、px 和百分比宽度混合的简单问题?! [有图]

    I have this little problem 如何设置第二个框的宽度以填充所有空间 包括橙色框 Thanks HTML div class parent div class orange div div class blue div
  • Python 错误:TypeError:+ 不支持的操作数类型:'int' 和 'str'

    我正在尝试编写一个程序 用户可以输入他们希望它关闭的小时和分钟 然后 它需要当地时间以及小时和分钟 然后将两者加在一起以产生程序运行的时间离开 注意 我不希望它将我的输入和当前时间的数字作为字符串放在一起 我需要它来将数字加在一起 当我运行
  • StringTemplate 读取 XML 模板时出现无效字符“<”

    我正在尝试创建一个简单的 XML 模板 到目前为止仅包含 我这样读文件 STGroup group new STGroupDir templates ST st group getInstanceOf report st add analy
  • 无法根据规则“安全”将数组数据从 dtype('float64') 转换为 dtype('int32')

    我有一个像这样的 numpy 数组 result np array 289 354 331 291 206 66 242 70 256 210 389 342 273 454 218 255 87 256 127 342 173 450 3
  • Google 时间轴重叠时间表

    我创建了一个时间表 有时连续有两个时间表 这不是问题 但我想将它们显示在重叠的一行中 请看这个例子 因此 较小的线应显示为较大线的一部分 Google 的可视化 API 令人惊叹 是一件非常好的事情 但它还没有很好的文档记录 考虑到您已经对
  • 如何在实时模板中将变量的一个实例大写?

    我正在尝试为 React useState 制作一个模板 const item setItem useState value const state set state useState init end Since item是一样的 只是
  • 找到隐藏元素的“潜在”宽度

    我目前正在延长拉瓦灯插件 http www gmarwaha com blog 2007 08 23 lavalamp for jquery lovers 处理下拉菜单 但我遇到了一个小问题 我需要知道offsetWidth隐藏的元素 现在
  • Vuex 响应式 mapGetters 并传递参数

    我有很多 getter 将参数传递给商店 例如 this store getters getSomeThing this id 我没有找到有关如何最佳使用的建议mapGetters保持反应性 同时传递参数 我发现的一个建议是映射 gette
  • 多 UI 线程 - Winforms

    我想在我的应用程序中创建多个 UI 线程 我模拟了如下场景 我正在单击按钮创建一个新窗口 表单背景 thread namespace WindowsFormsApplication1 public partial class Form1 F
  • 如何在不破坏 JPanel 的默认实现的情况下实现 MouseWheelListener?

    简单地 我有一个JPanel里面一个JScrollPane 正如预期的那样 JScrollPane默认听MouseWheelEvent这样 当滚轮旋转且光标悬停在滚动条上时 滚动效果很好JPanel But在那之后 我刚刚更新了JPanel
  • Asp.Net MVC 5 Owin Twitter Auth 抛出 401 异常

    我已经使用 Owin 中间件设置了 OAuth 身份验证 该中间件基于使用 个人帐户 身份验证启动新 Web 项目时创建的默认项目 我对其进行了一些调整 但 Facebook 和 Google 运行良好 但是 当我单击 twitter 按钮
  • Drupal 7:上传时重命名文件(通过文件字段)

    我正在寻找一种方法来重命名用户通过文件字段上传的文件 例如 使用以下命令重命名用户个人资料照片uniqid 我在 D6 找到了一个很好的解决方案Drupal 6 如何在上传时更改文件名 http www wesjones net home
  • django-tastypie - 如何通过关系实现多对多

    我正在为一个项目开发 API 并且通过 OrderProducts 建立订单 产品关系 如下所示 在目录 models py中 class Product models Model 按顺序 models py class Order mod