由于Django 1.2.1'prepopulated_fields'不会在管理员中预先填充

时间:2010-07-11 02:50:37

标签: python django admin

由于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)

3 个答案:

答案 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仍然按照文档中的说明运行。你的代码看起来很合理,但是我可以想到一些可能的问题:

  1. Javascript已停用和/或您的管理媒体链接已损坏。
  2. 你的字段名称中有一个错字。
  3. 您的浏览器中有一些缓存阻止javascript正常工作的内容。