gpt4 book ai didi

python - Django 管理员,使用 DateTime 小部件在创建时设置不可编辑的日期字段

转载 作者:行者123 更新时间:2023-11-28 22:53:01 26 4
gpt4 key购买 nike

我定义了一个非常简单的模型:

class DateTimeRef(models.Model):
start = models.DateTimeField(editable=False, db_index=True)

我想允许通过 Django Admin 创建这些字段。因为该字段是不可编辑的,所以我读到我需要这样做:

class DateTimeRefForm(forms.ModelForm):
start = forms.DateTimeField()

class Meta:
model = models.DayPart


class DateTimeRefAdmin(admin.ModelAdmin):
form = DateTimeRefForm
list_display = ['start']

这将为我提供用于日期时间字段的简单文本输入: enter image description here

此管理员的用户不一定具有技术倾向。我想让他们更容易地创建这些对象。可编辑的日期时间字段让这个时髦的小部件开箱即用:

enter image description here

无论如何我可以让我的不可编辑字段在管理站点中使用这个表单小部件吗?

更新

澄清一下:当我创建记录时,我希望能够通过 Django 管理员设置此字段。我不希望该字段可以任何其他方式进行编辑。

最佳答案

我是这方面的新手,但我面前的代码在 admin.py 中有以下成语:

class ThingAdmin(admin.ModelAdmin):

def get_readonly_fields(self, request, obj=None):
if obj:
return ('start',)
else:
return ()

在我的示例中,这具有在创建新对象时使其可编辑的效果,但在查看旧对象时则不可编辑。

关于python - Django 管理员,使用 DateTime 小部件在创建时设置不可编辑的日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com