gpt4 book ai didi

python - 如何通过 tasytpie API 将产品放入购物车?

转载 作者:行者123 更新时间:2023-11-28 19:26:50 31 4
gpt4 key购买 nike

假设我们有这些模型,原始项目不同,但这是常见的任务:

class Cart(models.Model):
owner = models.ForeignKey(User)
products = models.ManyToManyField(Product, symmetrical=False)

class Product(models.Model):
title = models.CharField(max_length="255")
description = models.TextField()

现在我想通过 api 将产品放入购物车。

我是这样开始的:

class CartResource(ModelResource):
products = fields.ManyToManyField(ProductResource, 'products', full=True)

def override_urls(self):
return [
url(r"^(?P<resource_name>%s)/product/(?P<prodcut_id>\w[\w/-]*)/$" % (self._meta.resource_name), self.wrap_view('dispatch_detail_product'), name="api_dispatch_detail_product"),
]

def dispatch_detail_product(.....):
# A get is not useful or is it?
# A post could put a product into the cart
# A put (preferred) could put a product in the cart
# A delete could delete a product from the cart

class Meta:
queryset = Product.objects.all()
authentication = MyBasicAuthentication()
authorization = DjangoAuthorization()
list_allowed_methods = ['get']
detail_allowed_methods = ['get', 'put', 'delete']

def obj_update(self, bundle, request=None, **kwargs):
return super(PrivateSpaceResource, self).obj_create(bundle, request, owner=request.user)

def apply_authorization_limits(self, request, object_list):
if len(object_list.filter(owner=request.user)) == 0:
Cart.objects.create(owner=request.user)
return object_list.filter(owner=request.user)

但我不确定该怎么做。与 django 相比,tastypie 绝对对开发人员不友好。

最佳答案

我认为您应该创建一个关系资源。请检查下面的代码:

class LikeResource(ModelResource):
profile = fields.ToOneField(ProfileResource, 'profile',full=True)
post = fields.ToOneField(PostResource,'post')

class Meta:
queryset = Like.objects.all()
authentication = ApiKeyAuthentication()
authorization = DjangoAuthorization()
resource_name = 'like'
filtering = {
'post': 'exact',
'profile':'exact',
}

然后您可以向该资源发出 POST 请求以将新产品添加到购物车。

关于python - 如何通过 tasytpie API 将产品放入购物车?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8613522/

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