Python 日期字段和时间字段don';添加到模型类后,不会出现
我对Python和Django很陌生。我正在设置一个新的模型类,可以在管理页面上添加约会,但奇怪的是: 我以前有一个DateTimeFiled,我把它改为一个单独的DateField和一个TimeField。但现在我既看不到日期字段,也看不到时间字段。为什么,我不明白。我已经完成了迁移,看起来一切正常 这是我的模型课:Python 日期字段和时间字段don';添加到模型类后,不会出现,python,django,django-models,Python,Django,Django Models,我对Python和Django很陌生。我正在设置一个新的模型类,可以在管理页面上添加约会,但奇怪的是: 我以前有一个DateTimeFiled,我把它改为一个单独的DateField和一个TimeField。但现在我既看不到日期字段,也看不到时间字段。为什么,我不明白。我已经完成了迁移,看起来一切正常 这是我的模型课: class Appointment(models.Model): patient = models.ForeignKey(User, related_name="appo
class Appointment(models.Model):
patient = models.ForeignKey(User, related_name="appointment_patient", on_delete=False)
date = models.DateField(auto_now=True)
start_time = models.TimeField(auto_now=True)
duration = models.DurationField(default=timedelta(minutes=30))
在我做出这一改变之前,所有财产都是正确的,但现在发生了这样的情况:
auto\u now
在保存模型对象时,会自动更新为时区。now()
。因此,没有必要在模板中显示它们。这就是为什么adminsite忽略或不显示此字段的原因。有关更多详细信息,请参阅。如果要显示此字段,请将其添加到只读字段中。例如:
class YourModelAdmin(admin.ModelAdmin):
readonly_fields=('start_time',)
更新
如果要向DateField添加默认值,请尝试以下操作:
import datetime
# in models
state_date = models.DateField(default=datetime.date.today) # without parenthesis
auto\u now
在保存模型对象时,自动更新为时区。now()
。因此,没有必要在模板中显示它们。这就是为什么adminsite忽略或不显示此字段的原因。有关更多详细信息,请参阅。如果要显示此字段,请将其添加到只读字段中。例如:
class YourModelAdmin(admin.ModelAdmin):
readonly_fields=('start_time',)
更新
如果要向DateField添加默认值,请尝试以下操作:
import datetime
# in models
state_date = models.DateField(default=datetime.date.today) # without parenthesis
检查。这是因为您现在在字段中设置了
auto\u
。请检查。这是因为您现在在字段中设置了auto\u
。哦,我明白了,这是有道理的。我以前尝试过使用默认值,但遇到了问题,然后我就这样尝试了。无论如何,它不应该是只读的。我用一个默认值重试了它,但我不知道如何设置它。有多种解释不起作用(可能是Python 2)。我在文档中看到了这一行,如果没有导入部分,我将无法使用这一行:For DateField:default=date.today-from datetime.date.today()
。我不懂进口部分。这不是导入语法?!?什么是import语句使得date.today
可以工作?它应该是state\u date=models.DateField(默认值=datetime.date.today)
这个Python语法真让我受不了!都不起作用,不是default=date.today
也不是default=datetime.date.today
。在第一种情况下,PyCharm已经抱怨,在后一种情况下,迁移失败:AttributeError:'method\u descriptor'对象没有“today”属性。
@dand我不面临这个问题。我仅导入datetime
。请看我的答案的更新部分,就是这样,现在它工作了。为什么呢?不过还是要谢谢你!哦,我明白了,这是有道理的。我以前尝试过使用默认值,但遇到了问题,然后我就这样尝试了。无论如何,它不应该是只读的。我用一个默认值重试了它,但我不知道如何设置它。有多种解释不起作用(可能是Python 2)。我在文档中看到了这一行,如果没有导入部分,我将无法使用这一行:For DateField:default=date.today-from datetime.date.today()
。我不懂进口部分。这不是导入语法?!?什么是import语句使得date.today
可以工作?它应该是state\u date=models.DateField(默认值=datetime.date.today)
这个Python语法真让我受不了!都不起作用,不是default=date.today
也不是default=datetime.date.today
。在第一种情况下,PyCharm已经抱怨,在后一种情况下,迁移失败:AttributeError:'method\u descriptor'对象没有“today”属性。
@dand我不面临这个问题。我仅导入datetime
。请看我的答案的更新部分,就是这样,现在它工作了。为什么呢?不过还是要谢谢你!