django - Django我如何进行内部连接
问题描述
我的模型.py
class Forms_in_Document(models.Model):
document_submit = models.ForeignKey(Document_submit, on_delete=models.CASCADE)
class Document_data(models.Model):
forms_in_document = models.ForeignKey(Forms_in_Document, on_delete=models.CASCADE)
document_structure = models.ForeignKey(DocumentStructure , on_delete=models.CASCADE)
date_created= models.DateTimeField(default=datetime.now(),null=False)
string = models.CharField(null=True, max_length=100)
integer = models.IntegerField(null=True)
date_time = models.DateTimeField(null=True)
class Application(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE, null=False)
date_created = models.DateTimeField(default=datetime.now(),null=False)
forms_in_document = models.ForeignKey(Forms_in_Document, on_delete=models.CASCADE, null=True)
closed = models.BooleanField(default=False, null=False)
new = models.BooleanField(null=False)
media = models.BooleanField(default=True)
Path_info = models.ForeignKey(Path_info, on_delete=models.SET_NULL,null=True)
我试图在 Django views.py 中执行的原始 SQL 查询是
Select * from Application app
inner join Document_data dd
on dd.forms_in_document=app.forms_in_document
如何在我的视图中使用 Django 查询集来做同样的事情?
提前致谢
解决方案
给定一个Application
实例,您可以访问Document_data
使用以下内容的列表:
application = Application.objects.get(...)
documents = applications.forms_in_document.document_data_set.all()
或者
application = Application.objects.get(...)
documents = Document_data.objects.filter(forms_in_document__application=application)
推荐阅读
- c - 如何创建具有动态行和列大小的动态字符数组
- laravel-5.8 - 在 checkAdmin 和 CheckUser 中间件条件为真后,Laravel 页面无法正常工作
- mysql - 如何确保更新没有唯一 ID 的唯一 MySql 行
- java - JsonDeserialize 嵌套对象中的单个变量
- javascript - 将图像从 Angular 上传到 NodeJS
- smartcard - Mifare desfire apdu 命令
- jquery - 未捕获的 SyntaxError:构建后令牌无效或意外
- python - requests.exceptions.ConnectionError Python
- python - 如何通过控制扬声器通道的音量使用 python 创建环绕效果?
- bash - 在 Windows Bash 中包含 PowerShell 命令