我有以下模型,希望从现在起将下一个8月(午夜时间)添加为offer_start的默认值:

class Offer(models.Model):
    """
    A table to store all available offers for an upcoming season
    """
    club = models.ForeignKey(Club, on_delete=models.CASCADE, related_name='offer')
    season_start = models.CharField(max_length=40)
    seasons_duration = models.IntegerField()
    offer_start = models.DateTimeField(auto_now_add=False, default= ???)
    roi_goal = models.FloatField()
    roi_point = models.FloatField()

    def __str__(self):
        return f'Offer by {self.club} for season {self.season_start}'

有没有办法制定这样的规范?

推荐答案

是的,您可以通过以下方式拨打电话:

from django.utils.timezone import now

def next_august_1():
    today = now().date()
    if (today.month, today.day) >= (8, 1):
        return datetime(today.year+1, 8, 1)
    return datetime(today.year, 8, 1)

然后将callable传递给DateTimeField:

class Offer(models.Model):
    # …
    #                          without parenthesis 🖟
    offer_start = models.DateTimeField(default=next_august_1)

Django相关问答推荐

我的Django终结点不访问HAS_OBJECT_PERMISSION方法

如何在Django CMS中更新上下文

执行官/start.sh:没有这样的文件或目录

在 Trunc 的 kind 属性中使用字段

`.objects` 属性在哪里添加到 Django 的 models.Model 类中的实例命名空间?

如何使用具有某些权限的 Django 组的转储数据和加载数据?

django 的 Manager.create() 方法有什么作用?

Django 表单字段必填和可选配置

如何在 Django 模板中的计数器上进行 for 循环中断?

Django 有脚手架吗?

防止 django 将_id附加到外键字段

Django 独立脚本

django.core.exceptions.ImproperlyConfigured:请求设置 USE_I18N,但未配置设置

在 Django 中注册用户的最佳方法

在 Django 中扩展 urlize

Django unique=True 不工作

Django Rest Framework - 缺少静态目录

如何在 django 中仅获取表的特定列?

将属性添加到 Django 模型的 Meta 类中

如何更改 ModelForm 中所有 Django 日期字段的默认小部件?