问题描述
我是 Django 的新手,目前正在处理我的第一个项目。我的模型设计如下:
class BasketProductMapping(models.Model):
product_reference = models.ForeignKey(Product,default=1,null=True,blank=True,on_delete=models.CASCADE)
mapped_basket_name = models.CharField(max_length=5,null=False,blank=False)
mapped_product_name = models.CharField(max_length=30,blank=False)
def __str__(self):
return self.mapped_basket_name
class ShelfBasketMapping(models.Model):
mapped_basket_name_reference= models.ForeignKey(BasketProductMapping,on_delete=models.CASCADE,default=1)
mapped_name_shelf = models.CharField(max_length=15,blank=False,default='default')
mapped_name_basket = models.CharField(max_length=15,default="default")
def __str__(self):
return self.mapped_name_shelf
class KioskShelfMapping(models.Model):
mapped_shelf_basket_name_reference = models.ForeignKey(ShelfBasketMapping,default=1)
mapped_shelf_name = models.CharField(max_length=15,default="default")
mapped_kiosk_name = models.CharField(max_length=15,default="default")
def __str__(self):
return self.mapped_shelf_name
假设我的第一个模型有这样的数据:
B1 - P1
B1 - P2
B2 - P1
B3 - P1
对于我的第二个模型,我的数据如下:
S1 - B1
S2 - B2
S1 - B3
最后,对于我的第三个模型,我的数据如下:
K1 - S1
K2 - S2
这是我的 serializers.py:
class KioskShelfMappingGetSerializer(serializers.ModelSerializer):
class Meta:
model = KioskShelfMapping
fields = ['id','mapped_shelf_basket_name_reference','mapped_shelf_name','mapped_kiosk_name','shelf_position']
depth = 2
这是我的 views.py 文件:
class KioskShelfgetViewSet(APIView):
def get(self,request):
kioskShelfMappingData = KioskShelfMapping.objects.all()
serializer = KioskShelfMappingGetSerializer(kioskShelfMappingData,many=True)
response = {'status':1,'message':"Kiosk Shelf Mapping List",'data':serializer.data}
return JsonResponse(response,safe=False)
我正在尝试将所有数据一起显示在一个表格中。但是我得到的数据是这种格式的:
K1 - S1 - B1 - P1
K2 - S2 - B2 - P1
但我需要接收以下格式的数据:
K1 - S1 - B1 - P1
K1 - S1 - B1 - P2
K1 - S1 - B3 - P1
K2 - S2 - B2 - P1
我无法理解为什么我没有获取全部数据,因为它们是使用外键连接的。请让我知道我哪里出错了。非常感谢您提前提供帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)