2017-02-23 57 views
2

我正在使用Django在網上工作。我創建了2個應用程序:一個供客戶端註冊,並將其數據添加到數據庫,另一個應用程序供用戶訪問並查看交互式界面。這個想法是使用第二個應用程序從數據庫中的客戶端獲取數據,並使用它向用戶顯示一些信息。如何在使用數據庫的Django中的應用程序之間交換數據?

我的問題是,我不明白如何使第二個應用程序從數據庫中獲取信息。我是否需要從第二個model.py上的第一個應用程序創建相同的模型?或者,如何讓第二個應用程序使用Queryset從數據庫檢索數據?

我不知道是否需要說我正在使用MySql數據庫。

回答

3

您不需要兩次定義相同的模型。事實上,你不應該出於許多原因,比如數據應該存在於數據庫中的一個地方(表名是根據應用程序名稱和遷移模型生成的),並且不應該重複代碼(DRY) 。

您可以在應用程序中定義它們應該屬於的模型(這完全是設計決策)。遷移是爲適當的應用程序創建的。

然後,在第二個應用程序中,您只需從第一個應用程序中導入想要使用的模型並構建您喜歡的任何查詢。例如:

APP1/models.py

from django.db import models 

class Node(models.Model): 
    name = models.CharField(max_length=100) 
    slug = models.SlugField() 
    body = models.TextField(blank=True) 

APP 2/views.py

from django.views.generic.detail import DetailView 
from app1.models import Node 

class NodeView(DetailView): 
    model = Node 
    template_name = 'app2/index.html' 
+0

謝謝,我wasn't知道,如果使用的應用程序名稱獲取模型就是答案。 –

相關問題