gpt4 book ai didi

django-tastypie - 如何通过关系使许多人

转载 作者:行者123 更新时间:2023-12-04 12:49:00 25 4
gpt4 key购买 nike

我正在为一个项目开发 API,我通过 OrderProducts 建立了 Order/Products 关系,如下所示:

在目录/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'

这给了我这个错误消息:“‘产品’对象没有属性‘订单’”。所以我不确定出了什么问题或遗漏了什么,它可能也需要我的产品资源中的一些东西,但我尝试了几种方法都没有成功。欢迎任何帮助:)

最佳答案

问题出在这一行:

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

该错误非常直接。 Product确实没有名为 order 的属性.您的 OrderProduct连接表可以,但您的 M2M 不返回 OrderProduct它返回 Product s。

关于django-tastypie - 如何通过关系使许多人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9192503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com