我想将slug字段设置为read_only,具体取决于其他字段值,如"lock_slug".
意味着将有两个条件.
1)当"lock_slug"的值为false时,slug字段直接从字段"title"预先填充.
prepopulated_fields = {"slug": ("title",),}
Run Code Online (Sandbox Code Playgroud)
2)当"lock_slug"的值为真时,slug字段为readonly.
def get_readonly_fields(self, request, obj = None):
if obj and obj.lock_slug == True:
return ('slug',) + self.readonly_fields
return self.readonly_fields
Run Code Online (Sandbox Code Playgroud)
这两个工作独立,但两者都有问题.
意味着当我尝试在编辑时添加get_readonly_fields()然后由于prepopulated_field而出错.这两个相互崩溃.
管理员方面都有任何解决方案.
我也参考下面的链接
在Django Admin中根据另一个字段的值创建一个readonly字段
django admin在修改obj时使字段为只读,但在添加新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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3364 次 |
| 最近记录: |