我正在使用Django在网络上工作.我创建了2个应用程序:一个用于客户端注册,并将其数据添加到数据库,另一个应用程序供用户访问和查看交互式界面.我们的想法是使用第二个应用程序从数据库中的客户端获取数据,并使用它向用户显示一些信息.
我的问题是我不明白如何使第二个应用程序从数据库中获取信息.我是否需要在第二个应用程序的model.py上创建相同的模型?或者我如何使第二个应用程序使用Queryset从数据库中检索数据?
我不知道是否有必要说我正在使用MySql数据库.
您不需要两次定义相同的模型.实际上,您不应该出于多种原因,例如数据应该位于数据库中的一个位置(表名称是根据应用程序名称和迁移模型生成的),并且您不应该重复代码(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)
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)