1
我有以下型號:Django的模型ForeignKey的關係
class Order(models.Model):
objects = OrderManager()
order_number = models.CharField(max_length=20, editable=False, unique=True,
default=get_unique_order_number)
user = models.ForeignKey(User)
cart = models.ForeignKey(Cart)
class OrderItem(models.Model):
objects = OrderItemManager()
order = models.ForeignKey(Order, related_name="items")
product = models.ForeignKey(Product)
quantity = models.PositiveSmallIntegerField()
price = models.DecimalField(max_digits=6, decimal_places=2, default=0.00)
tax = models.DecimalField(max_digits=6, decimal_places=2, default=0.00)
ITEM_STATUS = (
('PENDING', 'Pending'),
('REFUND', 'Refund'),
('CANCEL', 'Cancel'),
)
status = models.CharField(max_length=10, choices=ITEM_STATUS,
default="PENDING")
class Cart(models.Model):
user = models.ForeignKey(User)
creation_date = models.DateTimeField(auto_now_add=True)
modification_date = models.DateTimeField(auto_now=True, auto_now_add=True)
is_check_out = models.BooleanField(default=False)
可以有多個訂單,同車。 而每個訂單將有多個訂單項目。 我想在同一個購物車中獲得狀態='退款'的所有訂單商品。 我怎樣才能得到這個?
產生額外的信息:我使用的美味餡餅我的API調用
class RefundItemAuthorization(Authorization):
def read_list(self, object_list, bundle):
print 'Read List RefundItemAuthorization'
if bundle.request.user.is_admin:
return object_list.all()
else:
raise Unauthorized("Only admin user can access this.")
class OrderItemRefundResource(ModelResource):
product = fields.ForeignKey('store.api.ProductResource', 'product', full=True)
class Meta:
queryset = OrderItem.objects.filter(status='REFUND')
resource_name = 'item_refund'
include_resource_uri = False
allowed_methods = ['get']
limit = 0
authentication = SessionAuthentication()
authorization = RefundItemAuthorization()
例子:
{
"cart": [
{
"id": 1,
"orderitem": [
{
"id": 22,
"product": {
"brand_name": "A",
"cost_price": "0.69",
"description": "XXXX"
}
},
{
"id": 33,
"product": {
"brand_name": "B",
"cost_price": "0.50",
"description": "XXXXX"
}
}
]
}
]
}
我沒有購物車ID。我唯一的價值是狀態='REFUND' – reevh
@reevh,然後我有點困惑你想要得到什麼。 *所有*'OrderItem's'status ='REFUND''?或者是由'所有*購物車組成的'OrderItem'列表的列表。添加一個例子來澄清。 –
狀態='REFUND'的OrderItem列表,按購物車分組。示例添加到問題 – reevh