2010-11-04 2 views
7

Je rencontre des problèmes avec le site admin django et les inlines. J'ai cherché la solution pendant deux jours maintenant mais rien.Administrateur Django: inline manquant pour certains enregistrements

J'ai deux modèles:

class Measurement(models.Model): 
    user = models.ForeignKey(User) 
    date = models.DateTimeField(auto_now_add=True) 
    # etc 

class Media(models.Model): 
    measurement = models.ForeignKey(Measurement) 
    link = models.CharField(max_length=255, blank=True) 
    description = models.TextField(blank=True) 
    # etc 

et la configuration pour le site d'administration:

class MediaInline(admin.StackedInline): 
    model = Media 
    extra = 0 

class MeasurementAdmin(admin.ModelAdmin): 
    inlines = [MediaInline,] 

admin.site.register(Media) 
admin.site.register(Measurement, MeasurementAdmin) 

La chose étrange est: site d'administration montre inline pour certains objets de mesure et de ne pas pour d'autres. Le formset entier est invisible (il n'existe pas) même si les enregistrements associés sont visibles dans la base de données. En outre, l'exception ValidationError: [u'ManagementForm data is missing or has been tampered with'] est levée pour ces objets. Quelqu'un a-t-il traité de cela?

Répondre

15

Dans 90% des cas, j'ai vu cela était dû à une erreur dans la méthode __unicode__, que django utilise sur le modèle en ligne.

+0

vous aviez raison! Mais c'est toujours WTF pour moi. La chaîne retournée '__unicode__' est apparue correctement dans la liste des modules et dans la même fin avec une erreur pour certaines inlines? Comment c'est possible? : D – Anpher

+0

Voyons le code –

+0

@Anpher: '__Unicode__' n'est pas censé renvoyer une chaîne. C'est censé retourner Unicode. –

Questions connexes