添加到模型类后,DateField和TimeField不会出现

时间:2018-11-22 13:05:37

标签: python django django-models

我对Python和Django很陌生。我正在建立一个新的模型类,并且能够在管理页面上添加约会,但这是奇怪的事情:

我曾经有一个DateTimeFiled,我将其更改为单独的DateField和TimeField。但是现在我既看不到DateField,也看不到TimeField。为什么会这样,我不明白。我已经完成了迁移,一切看起来都很好。

这是我的模型课:

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))

在进行此更改之前,每个属性都正确显示,但是现在发生了:

enter image description here

1 个答案:

答案 0 :(得分:2)

每当保存模型对象时,

auto_now会自动用timezone.now()更新,并且该对象不可编辑。因此,没有必要在模板中显示它们。这就是为什么adminsite忽略此字段或不显示它的原因。有关更多详细信息,请参见Dataset JavaDoc。如果要显示此字段,请添加它readonly_fields。例如:

class YourModelAdmin(admin.ModelAdmin):
    readonly_fields=('start_time',)

更新

如果要将默认值添加到DateField,请尝试如下操作:

 import datetime

 # in models
 state_date = models.DateField(default=datetime.date.today)  # without parenthesis