aam*_*iri 3 python django readonly django-forms django-admin
我有一个非常简单的模型定义如下:
class DateTimeRef(models.Model):
start = models.DateTimeField(editable=False, db_index=True)
Run Code Online (Sandbox Code Playgroud)
我想允许通过 Django 管理员创建这些字段。因为该字段不可编辑,所以我读到我需要这样做:
class DateTimeRefForm(forms.ModelForm):
start = forms.DateTimeField()
class Meta:
model = models.DayPart
class DateTimeRefAdmin(admin.ModelAdmin):
form = DateTimeRefForm
list_display = ['start']
Run Code Online (Sandbox Code Playgroud)
这将为我提供一个用于日期时间字段的简单文本输入:

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

无论如何,我可以让我的不可编辑字段在管理站点中使用此表单小部件吗?
更新
澄清一下:当我创建记录时,我希望能够通过 Django 管理员设置此字段。我不希望该字段可以以任何其他方式编辑。
我是这个领域的新手,但是我面前的代码有以下习惯用法admin.py:
class ThingAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
if obj:
return ('start',)
else:
return ()
Run Code Online (Sandbox Code Playgroud)
在我的示例中,这具有在创建新对象时使其可编辑的效果,但在查看旧对象时则不可编辑。
| 归档时间: |
|
| 查看次数: |
2966 次 |
| 最近记录: |