admin.autodiscover()的问题

时间:2012-12-15 20:04:17

标签: django django-models django-admin

我遇到admin.autodiscover()的问题。我只是将我的网站从我正在构建它的系统移到了它将继续用于生产的服务器上。用于构建它的系统是Windows 7,但生产服务器是Debian Squeeze 64bit。

问题是我收到错误The model UserProfile is already registered。我没有在Windows 7计算机上遇到这个问题,只有在它移动到Debian之后才会出现这个问题。

admin.py

class UserProfileadmin(admin.ModelAdmin):
    list_display = ['user', 'country', 'totalflights', 'totalhours', 'hub']
    search_fields = ['user']
    list_filter = ['hub']
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
         if db_field.name == 'hub':
             kwargs['queryset'] = Airports.objects.filter(hub=True)

    return super(UserProfileadmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

admin.site.register(UserProfile,UserProfileadmin)
class PilotRankadmin(admin.ModelAdmin):
    list_display = ['ranktitle', 'minimumhours', 'pay']
    search_fields = ['ranktitle']

admin.site.register(PilotRank, PilotRankadmin)

class PIREPadmin(admin.ModelAdmin):
    list_display = ['user', 'flightnumber']
    search_fields = ['ranktitle']

admin.site.register(PIREP, PIREPadmin)

有什么想法吗?在使用Windows系统然后转移到Linux系统进行生产之前,我从来没有这样做过。

1 个答案:

答案 0 :(得分:2)

你能发布错误堆栈详情吗? 你有没有在调用注册之前尝试使用admin.site.unregister(UserProfile)?

编辑: 这似乎对我很好 -

if not admin.site._registry.has_key(UserProfile):
        admin.site.register(UserProfile)