我正在为一个项目开发 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
它返回Product
s.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)