簡體   English   中英

如何在Django Rest框架中加入非關系模型?

[英]How to join not relational model in django rest framework?

我在django rest框架中有關於不加入關系模型的問題。 例如,我有兩個模型:

  1. 型號類別模板

     class CategoryTemplate(models.Model): name = models.CharField(max_length=256) 
  2. 模型商品

     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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM