我有一个关于在django rest框架中加入而不是关系模型的问题。例如,我有两个模型:
模型类别模板
class CategoryTemplate(models.Model):
name = models.CharField(max_length=256)
模特商品
class Commodity(models.Model):
name = models.CharField(max_length=255, default=None, null=False)
示例数据:
*category template
id | name
1 | Pupuk
2 | Pestisida
*commodity
id | name
1 | Pisang
2 | Semangka
我的问题是,使用该模型如何加入该模型以获得这样的结果?
cat_temp_id | cat_temp_name | comm_id | comm_name | category
1 | Pupuk | 1 | Pisang | Pupuk Pisang
1 | Pupuk | 2 | Semangka | Pupuk Semangka
2 | Pestisida | 1 | Pisang | Pestisida Pisang
2 | Pestisida | 2 | Semangka | Pestisida Semangka
请指教。谢谢。
答案 0 :(得分:0)
如果您指的是非关系数据库,则不需要像在关系数据库中那样实现最终结果。
您要通过加入两个表来实现目标是什么?
答案 1 :(得分:0)
您要找的是笛卡儿产品,而不是加入。
为此,如果您可以迭代它们,则无需弄乱模型。只需编写一个嵌套循环
category_templates = CategoryTemplate.objects.all()
commodities = Commodity.objects.all()
for cat in category_templates:
for comm in commodities:
category = "%s %s" % (cat.name, comm.name)
或使用itertools.product
for (cat, comm) in itertools.product(
CategoryTemplate.objects.all(),
Commodity.objects.all()
):
category = "%s %s" % (cat.name, comm.name)