gpt4 book ai didi

django-admin - 在 Django Admin 中将预填充的 slug 字段设为只读

转载 作者:行者123 更新时间:2023-12-01 10:02:16 25 4
gpt4 key购买 nike

我想根据其他字段值(如“lock_slug”)将 slug 字段设为 read_only。

意味着将有两个条件。

1) 当 "lock_slug"的值为 false 时,slug 字段直接从字段 "title"中预填充。

prepopulated_fields = {"slug": ("title",),}

2) 当“lock_slug”的值为真时,slug 字段变为只读。
def get_readonly_fields(self, request, obj = None):
if obj and obj.lock_slug == True:
return ('slug',) + self.readonly_fields
return self.readonly_fields

这两个独立工作正常,但同时使用时会出现问题。

意味着当我尝试在编辑时添加 get_readonly_fields() 时,由于 prepopulated_fields 会出现错误。这两个相互崩溃。

将有任何解决方案可以在管理方面工作。

我也引用以下链接

Making a field readonly in Django Admin, based on another field's value

django admin make a field read-only when modifying obj but required when adding new obj

但不能同时工作这两个。

谢谢,

米纳克希

最佳答案

这是另一种方式:

class PostAdmin(admin.ModelAdmin):
list_display = (
'title',
'slug',
)
prepopulated_fields = {'slug': ('title',)}

def get_readonly_fields(self, request, obj=None):
if obj:
self.prepopulated_fields = {}
return self.readonly_fields + ('slug',)
return self.readonly_fields

关于django-admin - 在 Django Admin 中将预填充的 slug 字段设为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14562943/

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