2012-10-03 3 views
0

Je limite les choix ContentType pour une relation générique en utilisant limit_choices_to mais il montre des modèles qui n'existent plus. Par exemple, avec ce code:Les modèles supprimés apparaissent toujours en tant que choix ContentType dans Django?

employer_content_type = models.ForeignKey(ContentType, 
    limit_choices_to={"model__in": ('venue', 'festival')}, related_name="employer") 

Je reçois une liste de choix qui a des doublons, festival à savoir, festival, lieu, lieu

Cependant, lorsque je limite les choix par application plutôt que seulement des modèles comme celui-ci:

employer_content_type = models.ForeignKey(ContentType, 
      limit_choices_to={'app_label': 'contacts'}, related_name="employer") 

-je obtenir une liste de tous les modèles sans doublons, à savoir l'adresse, email, festival, lieu

à un moment donné dans mon développement, je créé un ne w app ("contacts") qui était un doublon d'une application plus ancienne. Tous les modèles avaient les mêmes noms etc. Au début, je pensais que cela causait les doublons, mais le problème n'a pas disparu après avoir supprimé l'ancienne app de settings.py et supprimé les anciens modèles de la base de données.

Je pense que c'est un problème de cache mais je ne configure jamais la mise en cache! Comment puis-je soit vider le cache, ou limiter les choix par modèle et application en même temps.

Merci pour votre aide!

Note: Malheureusement, je ne pouvais pas ajouter de photos, c'est un peu difficile à décrire!

+0

Il semble que votre table 'django_contenttype' contienne toujours des modèles inexistants. Essayez de faire 'manage.py syncdb --all'. Peut-être qu'il vous proposera d'éliminer les modèles périmés. Mais je ne suis pas sur –

Répondre

0

Recherchez la table db contentypes_contentype et supprimez les modèles obsolètes. syncdb devrait également vous inviter à supprimer les modèles obsolètes de la table de type de contenu.

Questions connexes