由于Django 1.2.1'prepopulated_fields'不会在管理员中预填充。
自从在1.1.1上开发后上传到Django 1.2.1服务器后, prepopulated_fields = {'slug': ('title',)}
似乎无法工作。
改变了什么?
我看了http://code.djangoproject.com/wiki/NewformsAdminBranch#Changedprepopulate_fromtobedefinedintheAdminclassnotdatabasefieldclasses 但是没有办法解决它,我的代码似乎很好。
想法?代码:
class Data(models.Model):
title = models.CharField(max_length=50)
slug = models.SlugField(max_length=50, unique=True, help_text='Unique value for product page URL, created from name.')
class DataAdmin(admin.ModelAdmin):
list_display = ('title', 'user', 'category')
list_filter = ('user', 'category')
ordering = ('title',)
search_fields = ('title',)
prepopulated_fields = {'slug': ('title',)}
admin.site.register(Data, DataAdmin)
答案 0 :(得分:3)
当我从django 1.1.1升级到1.2.1时,恰好发生了这种情况。这是因为它已经改变了媒体/管理目录,之前它是这样的:media / admin / js / admin,现在是:admin / media / js / admin。 我所做的是更改设置ADMIN_MEDIA_PREFIX ='/ media / admin /'
为了确保当您进入管理页面时,不会预先填充,运行firebug并检查该页面尝试获取js文件的位置。您将看到该位置与Django 1.2.1中这些js文件的实际位置之间存在差异。
答案 1 :(得分:0)
您是否阅读了prepulated_fields的当前文档?
如果你展示了你的代码会有所帮助,但你只需将它放在Admin类下面,这是一个非常直接的设置。
答案 2 :(得分:0)
我可以肯定地说,prepopulated_fields
仍然按照文档中的说明运行。你的代码看起来很合理,但是我可以想到一些可能的问题: