我正在使用Python(3.7)和Django(3)进行一个项目,我在其中实现了一些模型。其中一个是ReportsModel
,它对其他模型具有ForeignKey
字段。现在我想在ReportsModel
admin中显示其他模型数据
以下是我迄今为止的尝试:
来自models.py
:
class ReportsModel(models.Model):
cdr_report = models.ForeignKey(CurrencyDistributionModel,
on_delete=models.CASCADE, null=True, default=None)
cme_report = models.ForeignKey(CurrencyManagementExpenditureModel,
on_delete=models.CASCADE, null=True, default=None)
cps_report = models.ForeignKey(CurrencyProcessingStorageModel,
on_delete=models.CASCADE, null=True, default=None)
cma_report = models.ForeignKey(CurrencyManagementAssetsModel,
on_delete=models.CASCADE, null=True, default=None)
def __str__(self):
if self.cdr_report is not None:
return self.cdr_report.RequestId
elif self.cme_report is not None:
return self.cme_report.RequestId
elif self.cps_report is not None:
return self.cps_report.RequestId
elif self.cma_report is not None:
return self.cma_report.RequestId
要在admin中显示ForeignKey
字段,我正在使用django_reverse_admin
包,下面是我如何做到的:
来自admin.py
:
class ReportAdmin(ReverseModelAdmin):
report = None
if ReportsModel.cdr_report is not None:
report = 'cdr_report'
elif ReportsModel.cme_report is not None:
report = 'cme_report'
elif ReportsModel.cps_report is not None:
report = 'cps_report'
elif ReportsModel.cma_report is not None:
report = 'cma_report'
search_fields = ['name']
inline_reverse = [report]
inline_type = 'stacked'
admin.site.register(ReportsModel, ReportAdmin)
现在在管理中,它只对cdr_report
有效,当我添加类型为cme_report
的报告时,我正确地得到了RequestField
,但是cme_report
字段是空的
如何根据条件显示Inline Admin
相关问题 更多 >
编程相关推荐