【发布时间】:2016-08-28 04:37:12
【问题描述】:
我有两个模型,比如说书和作者,如下:
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
author = models.ForeignKey('Author')
latest_book = models.BooleanField(default=True)
现在,当我创建链接到作者的新书时,“latest_book”字段将自动设置为 True,到目前为止还不错...
例如,假设我有一个三部曲的作者:Book1、Book2 和 Book3 - Book3 是最新的。
我有两个问题: 1 - 保存Book3时如何将Book1和Book2的“latest_book”字段设置为false? 2 - 如果Book3正在被删除,如何将Book2的“latest_book”字段设置为true?
我以前也使用过一种方法,但问题是我无法使用 BookAdmin 中的 list_filter 来仅显示所有作者的最新书籍,因为我从未找到如何在方法结果上使用 list_filter... 我需要做这个过滤,所以我现在尝试使用模型字段
【问题讨论】:
-
您是否尝试过 Signal 或 DateTimeField 而不是 BooleanField ?
-
作者同时发行两本书会怎样?
-
我是 Django 新手,从未使用过 Signal。我已经使用 DateTimeField 作为发布日期,但我还想使用 BooleanField 作为标志...
-
只有一本书是最新的,所以即使同一天出两本书,我也可以另外调整时间,这很好。我希望每位作者只看到一本 latest_book。