如何从另一个模型引用 Django 模型

2024-03-13

我希望在管理面板中为一个测试程序创建一个视图,该程序记录书籍、出版商和作者(如 djangoproject.com)

我定义了以下两个模型。

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    email = models.EmailField()

    def __unicode__(self):
        return u'%s %s' % (self.first_name, self.last_name)

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()

    def __unicode__(self):
        return self.title

我想要做的是更改 Book 模型以引用任何作者的名字,并使用 admin.AdminModels 来显示它。

#Here is the admin model I've created.

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'publisher', 'publication_date') # Author would in here
    list_filter = ('publication_date',)
    date_hierarchy = 'publication_date'
    ordering = ('-publication_date',)
    fields = ('title', 'authors', 'publisher', 'publication_date')
    filter_horizontal = ('authors',)
    raw_id_fields = ('publisher',)

据我了解,同一模型中不能有两个外键。谁能给我一个如何做到这一点的例子?

我尝试过很多不同的事情,这让我一整天都发疯。我对 Python/Django 还很陌生。

需要明确的是 - 我只是希望作者的名字/姓氏出现在书名和出版商名称旁边。

Thanks


一个模型上可以有多个外键。 如果您将外键字段的名称放入list_display你永远只会看到__unicode__相关模型的表示。 但是你可以将这样的功能添加到你的BookAdmin:

def first_names(self, obj):
    return ','.join(a.first_name for a in obj.authors.all())
get_sites.short_description = 'First Names'

然后加'first_names' to list_display.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从另一个模型引用 Django 模型 的相关文章

随机推荐

  • 更快的 Python MySQL

    我使用mysql connector MySQLdb Python实现 来访问MySQL 从游标的 select 语句的传输速度不是那么快 有没有办法加快代码速度 也许是另一个图书馆 哪个 我有Windows和Python 3 1 也许行检
  • 忙等待循环中是否需要内存屏障或原子操作?

    考虑以下spin lock 实现 最初来自这个答案 https stackoverflow com a 32658335 3169754 void spin lock volatile bool lock for inserts an ac
  • 在laravel中编写查询join sum groupby

    请帮我写查询 我有 2 个表 项目 和 债务 债务 表有 id project id currency list total 1 1 1 1000 2 1 2 500 3 2 1 1000 4 2 2 500 我需要编写查询以从项目中获取
  • Rails 2.3.5 在 (?) 中使用时动态构建条件数组的问题

    导轨2 3 5 我研究了许多与动态构建 ActiveRecord 查找条件相关的其他问题 我知道有一些很棒的东西 比如搜索逻辑 而且 Rails3 中更好 但是 我正在使用 geokit 进行地理空间搜索 并且我正在尝试构建一个标准条件集
  • SQL Server 2008 R2 将数字转换为数据类型数字时出现算术溢出错误

    我在 SQL Server 2008 R2 上遇到了一个我无法理解的令人困惑的错误 但是 当我在本地服务器 也包括 SQL Server 2008 R2 上尝试相同的请求时 一切正常 所以这是引发问题的请求 select cast cast
  • 在 MVC 中添加许多 CDN 捆绑包

    我正在尝试为生日创建一个日期时间选择器 您可以see here https stackoverflow com questions 34271030 change language to bootstrap datetimepicker 该
  • 与自己的班级交友“>>”

    我有以下课程 我与它交了朋友cout现在我正在尝试与它交朋友cin但我收到错误 任何人都可以帮助我 或者告诉我我做错了什么吗 error c mingw bin lib gcc mingw32 4 6 1 include c bits st
  • 是否有一个手势识别器可以同时处理捏合和平移?

    因此 我正在使用 iOS 4 2 向我的应用程序添加缩放和平移功能 我已经实现了 UIPinchGestureRecognizer 和 UIPanGestureRecognizer 的实例 在我看来 一次只有一个能够识别一个手势 特别是 后
  • 在 Rails 助手的类中使用 link_to

    我有一个使用下面结构的 Rails 助手 但是当我使用它时 我收到消息 undefined method link to 助手安排如下 module MyHelper class Facet def render for search li
  • Dalvik 正在寻找扩展名为“.0”的 .so 文件 - 为什么?

    我已经开始开发一个非常简单的 Android 应用程序 它由三部分组成 Java应用程序本身 一个预先构建的共享库 我们将其称为libfoo 另一个使用预构建库的共享库 我们将其称为libfoowrapper 文件系统看起来像这样 jni
  • PHP 条件取决于窗口宽度(媒体查询?)

    我有一个响应式网站 我需要一些 PHP 条件 具体取决于窗口宽度 或媒体查询 Example if window width gt 1400px echo Your window is wider than 1400px elseif wi
  • 将变量传递到新页面而不使用查询字符串

    有没有一种方法可以将变量从具有弹出 iframe 的 1 个页面传递到客户端按钮单击上的弹出窗口 iframe 而不使用查询字符串 我的变量太大而无法使用查询字符串 提出同样问题的另一种方式 有没有办法在客户端按钮单击时将变量从一个页面传递
  • 用 python 生成随机 ISO8601 日期?

    我已经看到如何从 ISO 格式的日期开始 例如2007 01 14T20 34 22 00 00 使用 python 转换为更具可读性的格式datetime 有没有一种简单的方法来生成随机 ISO8601 日期如同这个答案 https st
  • Cygwin 编译错误:“此应用程序已请求运行时以不寻常的方式终止它”

    我正在尝试运行 Cygwin 但遇到了一些问题 我尝试用 mingw 编译一个既可以在 Windows 上运行也可以在 Unix 系统上运行的程序 但是当我通过 Cygwin 编译它时 gcc threads c o threads 我收到
  • 使用 Sequelize 将多个参数安全地发送到 IN 子句以进行原始查询

    使用 Sequelize 我可以执行原始查询并安全地发送参数 感谢通过参数进行数据库绑定参数 const baz 1 sequelize query select from foo where bar baz replacements ba
  • 如何避免使用JPA注释循环引用?

    我正在为一家商店注释我的域模型 使用 JPA 2 使用 Hibernate Provider 商店里的每件产品都可以有一个Category 每个类别可以分配给多个超级类别和子类别 这意味着 蜡烛 类别可以将 餐厅 和 装饰 作为父类别 将
  • 在 Microsoft Visual Basic 6.0 中填充组合框

    我在 Microsoft Visual Basic 6 0 中有一个组合框 我必须将项目添加到组合框中 这些项目存储在 SQL 数据库中的 Column1 表中 我不确定如何让这些项目在运行时显示在组合框中 以便用户可以选择不同的选项 注
  • 从命令行查找目录中的文件

    在 eclipse 和 textmate 等编辑器 IDE 中 有一些快捷方式可以快速查找项目目录中的特定文件 是否有类似的工具可以在 bash 或其他 shell 中 递归地 对目录中的文件名进行完整路径补全 我的项目有很多目录 而且还有
  • 如何在java中对用户输入进行单元测试

    我试图了解如何测试用户的输入 请注意 我不是在尝试进行模拟测试 而是对实际用户输入的测试 目前 正如您在我的程序中看到的那样 我已经对测试用例的值进行了硬编码 并且它通过了所有测试 但是我如何获取用户的输入并对其进行测试 有没有一种方法可以
  • 如何从另一个模型引用 Django 模型

    我希望在管理面板中为一个测试程序创建一个视图 该程序记录书籍 出版商和作者 如 djangoproject com 我定义了以下两个模型 class Author models Model first name models CharFie