7

私はプロジェクトのAPIに取り組んでおり、次のようなOrderProductsを介してOrder/Productsの関係があります。

catalog/models.py内

class Product(models.Model):
    ...

order/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を使用)。

order / 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'がありません」。そのため、何が間違っているのか、何が欠けているのかわかりません。おそらく、製品リソースにも何かが必要ですが、いくつかの方法を試しましたが、成功しませんでした。どんな助けでも大歓迎です:)

4

1 に答える 1

2

問題はこの行にあります:

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

エラーは非常に簡単です。Product実際には、という名前の属性はありませんorderOrderProduct結合テーブルはそうしますが、M2MはOrderProductsを返しません。sを返しますProduct

于 2012-02-08T15:33:00.833 に答える