2010-11-04 16 views
7

Mam tutaj pewne problemy ze stroną admin django i inlines. Od dwóch dni szukam rozwiązania, ale nic.Administrator Django: brakuje inlines dla niektórych rekordów

mam dwa modele:

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 

i konfiguracja na stronie admin:

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

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

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

Najdziwniejsze jest: Panel administracyjny przedstawia inlines dla niektórych obiektów pomiarowych a nie dla jakichś innych. Cały zestaw jest niewidoczny (go nie ma), nawet jeśli powiązane rekordy są widoczne w bazie danych. Dla tych obiektów powstaje także wyjątek ValidationError: [u'ManagementForm data is missing or has been tampered with']. Czy ktoś sobie z tym poradził?

Odpowiedz

15

W 90% przypadków widziałem, że było to spowodowane błędem w metodzie __unicode__, która jest używana przez django w szablonie wbudowanym.

+0

miałeś rację! Ale nadal jest dla mnie WTF. Zwracany ciąg znaków "__unicode__" pojawił się poprawnie na liście modułów i na tym samym końcu z błędem dla niektórych linii wewnętrznych? Jak to możliwe? : D – Anpher

+0

zobaczmy kod: –

+0

@Ascher: '__Unicode__' nie powinien zwracać ciągu znaków. Powinien zwrócić Unicode. –

Powiązane problemy