【发布时间】:2020-08-06 01:53:15
【问题描述】:
所以我试图让所有值能够显示在我的模板中。但是我自己也遇到过这个问题:
我有这些模型:
class Project(models.Model):
projectId = models.AutoField(primary_key=True, db_column="Id", db_index=True, verbose_name='Project ID')
description = models.CharField(max_length=900)
class PM(models.Model):
PMid = models.AutoField(primary_key=True, db_column="Id", db_index=True)
PMNumber = models.CharField(max_length=50, unique=True, db_column="PMNumber")
description = models.CharField(max_length=600)
projectId = models.ForeignKey(Project, on_delete=models.CASCADE,
db_column="ProjectID", related_name='+')
我正在尝试使用它们各自的 PMNumber 获取所有项目。为此我正在尝试这样的事情:
fpm = PM.objects.all()
projects = []
for i in fpm:
projects.append({'ProjectName': i.projectId.description, 'PMNumber': i.PMNumber})
之后的结果是这样的
[{'ProjectName': 'pr1', 'PMNumber': '119508-01'}, {'ProjectName': 'pr1', 'PMNumber': '119490-01'}]
但是,我仍然缺少一些没有相关 PM 的项目,我希望查询集中的所有项目都能够在模板中显示它们,而不仅仅是具有 PM 的项目。它应该看起来像这样:
[{'ProjectName': 'pr2', 'PMNumber':'None'}, {'ProjectName':'pr3' , 'PMNumber':'None'}, {'ProjectName': 'pr1', 'PMNumber': '119508-01'}, {'ProjectName': 'pr1', 'PMNumber': '119490-01'}]
有没有办法做到这一点?还是在视图中有其他方法可以做到这一点?
注意:我知道在 Django 中为每个类设置一个 ID 是不对的,但在我工作的地方这是一种标准。所以我不能改变它。
【问题讨论】:
-
我在
projects.append中看到语法错误。字典从未打开? -
是的,你是对的,这只是我写问题时的语法错误。它在代码中写得很好。我已经编辑了这个问题。感谢您的关注:D
标签: python django django-views django-templates