如何隐藏或禁用';slug';django管理中的字段?
我想禁用(首选)或隐藏django管理页面中的“slug”字段。我从django源代码“”中发现了错误,但实际上并没有解决问题 我正在使用django 1.5.5 基本情况示例: models.py 管理员 例外 这可能是一个非常简单的问题,但我找不到有效的解决方案。也许有人知道解决这个问题的好办法如何隐藏或禁用';slug';django管理中的字段?,django,python-2.7,django-models,django-admin,Django,Python 2.7,Django Models,Django Admin,我想禁用(首选)或隐藏django管理页面中的“slug”字段。我从django源代码“”中发现了错误,但实际上并没有解决问题 我正在使用django 1.5.5 基本情况示例: models.py 管理员 例外 这可能是一个非常简单的问题,但我找不到有效的解决方案。也许有人知道解决这个问题的好办法 谢谢。未测试,但应接近: class PostAdmin(admin.ModelAdmin): ... def __init__(self, *args, **kwargs):
谢谢。未测试,但应接近:
class PostAdmin(admin.ModelAdmin):
...
def __init__(self, *args, **kwargs):
super(PostAdmin, self).__init__(*args, **kwargs)
if not self.instance:
self.prepopulated_fields = {'slug': ('title',)}
def get_readonly_fields(self, request, obj=None):
fields = []
if obj:
fields += ['slug']
return fields
如果你正在编辑,你想让它成为只读的吗?是的,我想在django admin中编辑文章时关闭slug字段。
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
class PostAdmin(admin.ModelAdmin):
...
def __init__(self, *args, **kwargs):
super(PostAdmin, self).__init__(*args, **kwargs)
if not self.instance:
self.prepopulated_fields = {'slug': ('title',)}
def get_readonly_fields(self, request, obj=None):
fields = []
if obj:
fields += ['slug']
return fields