我只想尝试用我的字段获取请求。但在这个获取请求中,我不想使用pk。我只想使用Barcode,您可以在下面看到模型。
我也是Django的新成员:
Warning: Attempt to present <UIActivityViewController: 0x141b60f70> on <Xamarin_Forms_Platform_iOS_ModalWrapper: 0x1419a0920> whose view is not in the window hierarchy!
这也是我的网址。
class Product(models.Model):
name = models.CharField(max_length=255)
price = models.CharField(max_length=255,null=True)
barcode = models.BigIntegerField(unique=True, validators=[MaxValueValidator(13)])
cover_photo = models.ImageField(upload_to='images/', blank=True, null=True)
description = models.CharField(max_length=255,null=True)
product_url = models.CharField(max_length=255,null=True)
product_company = models.ForeignKey(Company, blank=True, null=True)
fields = ['barcode', 'name', 'cover_photo', 'product_url', 'price']
def __unicode__(self):
return self.name.encode('utf-8')
这是我的观点。
url(r'^api/products/(?P<barcode>)/$',product_detail, name="product_detail"),
product_detail = views.ProductViewSet.as_view({
'get': 'retrieve'
})
答案 0 :(得分:0)
尝试在lookup_field = 'barcode'
中设置ProductViewSet
,即
class ProductViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
lookup_field = 'barcode'
并在网址中设置正则表达式模式(注意[0-9]{1,13}
,它将匹配其长度在1到13之间的任何数字):
url(r'^api/products/(?P<barcode>[0-9]{1,13})/$',product_detail, name="product_detail")