【发布时间】:2014-05-03 18:34:15
【问题描述】:
我想禁用(首选)或隐藏 django 管理页面中的“slug”字段。我从 django 源代码“prepopulated_fields crashes with get_readonly_fields”中发现了错误,但实际上并没有解决问题。
我正在使用 django 1.5.5
示例基本情况:
models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=140, unique=True)
slug = models.SlugField(max_length=140, unique=True)
...
admin.py
from django.contrib import admin
from blog.models import Post
class PostAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('title',)}
readonly_fields = ('slug',)
...
异常
KeyError at /admin/blog/post/2/
u"Key 'slug' not found in Form"
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/blog/post/2/
Django Version: 1.5.5
Exception Type: KeyError
Exception Value: u"Key 'slug' not found in Form"
Exception Location: /home/XXXXXX/django_projects/virtualenvs/myenv27/local/lib/python2.7/site-packages/django/forms/forms.py in __getitem__, line 111
Python Executable: /home/XXXXXX/django_projects/virtualenvs/myenv27/bin/python
Python Version: 2.7.3
这可能是一个非常简单的问题,但我找不到有效的解决方案。也许有人知道这个问题的好解决方案。
谢谢。
【问题讨论】:
-
在编辑时是否要将其设为只读?
-
是的,我想在 django admin 中编辑帖子时关闭 slug 字段。
标签: django python-2.7 django-models django-admin