1
나는 다음과 같은 모델이 : 같은 카트와장고 모델 외래 키 관계
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)
이있을 수있는 여러 주문을. 각 주문에는 여러 주문 항목이 있습니다. 상태가 '환불'인 모든 OrderItem을 카트에 가져 오려고합니다. 어떻게받을 수 있습니까?
위한 추가적인 정보 : 내 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"
}
}
]
}
]
}
장바구니 정보가 없습니다. 내가 가진 유일한 가치는 status = 'REFUND' – reevh
@reevh입니다. 그러면 나는 당신이 얻고 자하는 것에 조금 혼란스러워합니다. * 모든 *'OrderItem'은'status = 'REFUND''입니까? 또는 * 모든 * 카트로 그룹화 된'OrderItem' 목록의 목록. 명확히 할 예제를 추가하십시오. –
상태가 'REFUND'인 OrderItem 목록을 카트별로 그룹화 한 목록. 질문에 예제가 추가되었습니다. – reevh