It seems you set a fixed date / time / datetime value as default for this field.

异常描述:

WARNINGS:
projects.Projects.create_time: (fields.W161) Fixed default value provided.
        HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now`
 

 

from django.db import models

# Create your models here.

from django.db import models
from django.utils import timezone


class Projects(models.Model):
    name = models.CharField(max_length=100)
    create_time = models.DateTimeField(default=timezone.now)

    # create_time = models.DateTimeField(default=timezone.now())
    # 添加()报错
    update_time = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.name

 

区别在于,timezone.now一个可调用对象在运行时执行,同时timezone.now()返回该函数的输出。

去掉()就可以了。

 

 

<think>我们正在处理用户关于Ubuntu系统中时间格式设置的问题。用户提到执行`gsettings get com.canonical.indicator.datetime time-format`返回`'locale-default'`,这与之前设置`24-hour`或`12-hour`不同。 首先,我们需要理解`locale-default`的含义。在`indicator-datetime`中,`time-format`设置为`'locale-default'`表示使用系统区域设置中定义的时间格式。这意味着时间显示将遵循系统区域设置的默认规则(例如,在英语美国区域中可能是12小时制,而在许多欧洲区域中可能是24小时制)。 接下来,我们回顾用户之前的问题,他们尝试设置时间格式为`24-hour`但遇到了`No schemas installed`错误。现在用户已经解决了模式问题,但设置后获取的值却是`locale-default`,这可能是因为设置方式不正确或设置后又被其他过程修改。 根据引用[1]中的内容,用户可能执行了以下命令: ```bash gsettings set com.canonical.indicator.datetime time-format 'custom' gsettings set com.canonical.indicator.datetime custom-time-format '%m月%d日 %A%H:%M:%S' ``` 这设置了自定义格式,但用户现在获取`time-format`返回的是`locale-default`,这并不一致。因此,我们需要检查: 1. 当前`time-format`设置的值是什么? 2. 是否存在多个设置相互覆盖的情况? 在`indicator-datetime`中,`time-format`有三个有效值: - `'12-hour'` - `'24-hour'` - `'locale-default'` - `'custom'`(当使用自定义格式时) 如果用户之前设置过`custom`,那么获取`time-format`应该返回`custom`。但用户现在返回的是`locale-default`,这可能是由于: - 用户重置了设置(例如通过`gsettings reset`)。 - 系统更新或某些应用程序修改了该设置。 - 用户执行了`gsettings set ... time-format 'locale-default'`。 因此,解决步骤应该是: 1. **确认当前设置**:使用`gsettings get com.canonical.indicator.datetime time-format`查看当前值。如果返回`locale-default`,则说明当前使用的是区域默认设置。 2. **重新设置为24小时制**:如果用户希望强制使用24小时制,可以执行: ```bash gsettings set com.canonical.indicator.datetime time-format '24-hour' ``` 3. **验证设置**:再次获取该值,确认是否变为`'24-hour'`。 4. **如果设置后仍无效**,检查是否有其他程序在覆盖该设置(如GNOME设置、Unity控制中心等)。此外,重启GNOME Shell(按`Alt+F2`然后输入`r`)可能使更改生效。 5. **注意**:在Ubuntu 18.04及更高版本中,`indicator-datetime`可能被GNOME的时钟取代,因此设置可能位于`org.gnome.desktop.interface`中: ```bash gsettings set org.gnome.desktop.interface clock-format '24h' ``` 现在,针对用户当前的问题(返回`locale-default`),我们可以解释: - 返回`'locale-default'`表示当前使用系统区域设置的默认时间格式。 - 如果想改变,可以直接设置为`'24-hour'`或`'12-hour'`。 最后,我们提供完整的步骤,并确保用户能够正确设置。</think>### 解决 `gsettings get` 返回 `'locale-default'` 的问题 当执行 `gsettings get com.canonical.indicator.datetime time-format` 返回 `'locale-default'` 时,表示系统正在使用**区域设置的默认时间格式**。以下是详细分析和解决方案: --- #### 原因分析 1. **`locale-default` 的含义** 表示系统遵循当前区域设置(`LC_TIME`)的默认时间格式: ```bash locale | grep LC_TIME # 查看当前时间区域设置 ``` - 中文环境通常默认使用 24 小时制(`zh_CN.UTF-8`) - 英文环境可能默认 12 小时制(`en_US.UTF-8`) 2. **与 `time-format` 的关系** 该键值有三种可能状态: | 值 | 含义 | |---|---| | `'locale-default'` | 使用系统区域默认格式 | | `'12-hour'` | 强制 12 小时制 | | `'24-hour'` | 强制 24 小时制 | --- #### 解决方案:强制设置时间格式 ```bash # 强制24小时制 gsettings set com.canonical.indicator.datetime time-format '24-hour' # 强制12小时制 gsettings set com.canonical.indicator.datetime time-format '12-hour' # 验证结果 gsettings get com.canonical.indicator.datetime time-format # 应返回 '24-hour' 或 '12-hour' ``` --- #### 高级配置:自定义时间格式 若需完全自定义格式(如显示中文月份),需**同时设置两个键**: ```bash # 1. 启用自定义模式 gsettings set com.canonical.indicator.datetime time-format 'custom' # 2. 设置自定义格式(示例:显示中文年月日) gsettings set com.canonical.indicator.datetime custom-time-format '%Y年%m月%d日 %H:%M:%S' # 验证格式 gsettings get com.canonical.indicator.datetime custom-time-format ``` > 格式符号参考:`%Y`=年,`%m`=月,`%d`=日,`%H`=时(24),`%I`=时(12),`%M`=分,`%S`=秒[^1] --- #### 系统级修复(若设置无效) 如果设置后仍恢复为 `locale-default`,可能是 schema 未正确加载: ```bash # 重新编译 schema sudo glib-compile-schemas /usr/share/glib-2.0/schemas/ # 重启 GNOME Shell killall -3 gnome-shell # 或按 Alt+F2 输入 r ``` --- #### 替代方案:使用 GNOME 原生设置 在 Ubuntu 18.04+ 中,推荐使用更稳定的 GNOME 设置: ```bash # 设置24小时制 gsettings set org.gnome.desktop.interface clock-format '24h' # 设置12小时制 gsettings set org.gnome.desktop.interface clock-format '12h' ``` --- ### 验证区域默认时间格式 ```bash # 查看系统区域时间格式 locale -k LC_TIME | grep t_fmt # 示例输出(中文环境): d_t_fmt="%Y年%m月%d日 %H时%M分%S秒" t_fmt="%H时%M分%S秒" ``` > 此输出解释为何返回 `locale-default` 时显示 24 小时制[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值