0

我遇到了问题admin.autodiscover()。我刚刚将我的站点从我正在构建它的系统移到它将保留用于生产使用的服务器上。用于构建它的系统是 Windows 7,但生产服务器是 Debian Squeeze 64 位。

问题是我得到了错误The model UserProfile is already registered。我的 Windows 7 计算机没有这个问题,只有当它迁移到 Debian 时才会出现。

管理员.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 系统进行生产时,我以前从未遇到过这种情况。

4

1 回答 1

2

您可以发布错误堆栈详细信息...您是否在调用 register 之前尝试过使用 admin.site.unregister(UserProfile) ?

编辑:这对我来说似乎很好 -

if not admin.site._registry.has_key(UserProfile):
        admin.site.register(UserProfile)
于 2012-12-15T21:09:17.297 回答