[英]How to join not relational model in django rest framework?
我在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
請指教。 謝謝。
如果您引用的是非關系數據庫,則不需要像在關系數據庫中那樣進行聯接以達到最終結果。
通過連接兩個表要達到的目標是什么?
你所尋找的是笛卡爾乘積 ,而不是加入 。
為此,如果您可以對模型進行迭代,則無需弄亂它們。 只需編寫一個嵌套循環
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.