【问题标题】:Displaying information from multiple foreign keys in the django admin在 django admin 中显示来自多个外键的信息
【发布时间】:2011-05-13 13:34:26
【问题描述】:

我在从多个外键中提取信息并将该信息显示在 django 管理员中时遇到了一些困难。我有四个模型:主题、研究、程序和事件。前三个是最后一个的外键。我希望每个事件的信息在管理员中显示如下:last_name、first_name、ssn、study_desc、procedure_desc 和 event_start_time 其中 last_name、first_name_ 和 ssn 位于 Subject 模型中,study_desc 位于 Study 模型中,procedure_desc 是位于过程模型中,而 event_start_time 位于事件模型中。

到目前为止,我已经能够通过使用模型表单将来自主题模型和事件模型的信息一起显示,但我未能从其他两个模型中获取更多信息以显示什么我现在有了。任何建议、见解或替代方法将不胜感激。我使用的表格如下。

class EventForm(ModelForm):

    def __init__(self, *args, **kwargs):
    super(EventForm, self).__init__(*args, **kwargs)
    if self.instance:
        self.fields['subject'].queryset = \
            Subject.objects.all().order_by('last_name')

    class Meta:
            model = Event

class EventAdmin(admin.ModelAdmin):
    form = EventForm
    search_fields = ['subject__last_name','subject__first_name','subject__ssn']
    list_display = ['last_name','first_name','ssn','event_start_time']

【问题讨论】:

  • 工作得很好,比我尝试的要好得多。谢谢。
  • @arie:可能应该将其发布为答案而不是评论。它解决了他的问题,你应该归功于找到一个可接受的解决方案,然后问题被标记为已回答。
  • 嘿。把我的评论变成了答案。我只是觉得简单地链接到现有答案并不值得称赞。但我当然不介意让我的答案被接受,我很高兴提出的解决方案很有帮助。周末愉快。

标签: django django-admin django-forms


【解决方案1】:

显示相关对象信息的一个选项是使用callable

这在 Django 的 ModelAdminlist_display 文档中得到了解释。

还可以查看 SO 上的 this question 以获取一些详细示例和讨论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2019-01-21
    • 2023-03-10
    • 1970-01-01
    • 2016-11-12
    相关资源
    最近更新 更多