jundymek
jundymek

Reputation: 1043

Django - refresh database

This is part of my admin.py file:

class InactiveSite(Site):
    class Meta:
        proxy = True
        verbose_name_plural = 'Inactive sites (' + str(Site.objects.filter(is_active=False).count()) + ')'

class InactiveSiteAdmin(admin.ModelAdmin):
    list_display = ('is_active', 'name', 'description', 'keywords', 'date')
    fields = ('name', 'url', 'category', 'subcategory', 'category1',
          'subcategory1', 'description',
          'keywords', 'date', 'group', 'is_active')
    readonly_fields = ('date',)
    list_editable = ('is_active',)
    list_display_links = ('name',)
    list_filter = ('is_active',)

    def get_queryset(self, request):
        return Site.objects.filter(is_active=False)

When I change site from inactive to active in my django admin it doesn't reload my database. There is still "Inactive sites (3)" for example. When I close my serwer and run it again everything is ok ("Inactive sites (2)" for example). How can I fix that?

Upvotes: 0

Views: 109

Answers (1)

Alasdair
Alasdair

Reputation: 309109

The verbose_name_plural is evaluated once when the module loads. You shouldn't use database queries to set it. There isn't a nice way to make it dynamic.

Upvotes: 1

Related Questions