2011-05-31 57 views
0

我正在向django admin上的编辑用户页面内嵌添加用户配置文件。到目前为止,唯一的问题是无论我在“额外”选项中输入什么值,页面始终显示1个额外用户配置文件记录的字段。 我实际上并不想显示任何额外的记录,但我无法让额外的记录消失。希望有人能够帮助,这让我很难过。Django inlinemodeladmin额外选项不工作

下面是代码:

#admin.py   
class UserProfileInline(admin.StackedInline): 
    model = auth_user_profiles 
    extra = 0 
    raw_id_fields = ('organisation_id','advertiser_id','division_id','rtp_id','person_id','hp_organisation_id') 
    exclude = ('specialist_id',) 

class UserAdmin(admin.ModelAdmin): 
    list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff', 'is_active', 'is_superuser', 'last_login', 'date_joined') 
    list_filter = ('is_staff', 'is_superuser', 'is_active') 
    search_fields = ('username','email','first_name','last_name') 
    inlines = (UserProfileInline,) 

admin.site.unregister(User) 
admin.site.register(User, UserAdmin) 

这是Django文档相关现货:https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#inlinemodeladmin-options

谢谢!

回答

2

好的,我现在想通了。真是一个愚蠢的错误。

前段时间我升级了我的django版本,但我忘了更新django管理媒体文件。

当我检查我的apache日志时,发现了几个与inline.js和其他几个文件相关的js erorrs。

用django 1.3包中的更新我的管理员js文件解决了这个问题。

2

您是否尝试将max_num设置为1?

如果MAX_NUM的值大于现有相关 对象,最多额外附加的空白 形式将被添加到该formset,所以 只要形式的总数不 不超过数大 max_num

这从docs about model formsets,但它也应该为InlineAdmin工作。

+0

感谢您的建议,我没有意识到max_num参数。不幸的是,它没有帮助,就像额外的参数,它没有任何区别。我一定在这里做错了事,但仍然不知道该怎么做...... – cybersimon 2011-06-01 00:11:48

+0

即使您将两个值都设置为0?我刚刚意识到在你的例子中'extra'被设置为0。 'max_num'必须小于'extra'(或等于)以防止显示更多的表单。 – arie 2011-06-01 07:58:27

+0

在这个例子中,只有'max_num'被设置为1,而'extra'没有被定义:http://blog.timc3.com/2010/02/18/extending-djangos-user-admin/这可能值得一试。 – arie 2011-06-01 08:05:13