2010-08-09 11 views
15

Bu, question numaralı belgenin devamı niteliğindedir. Bir alt modelde tanımlanan özellikleri üst öğedeki satır içi olarak nasıl görüntülerim? göstermek için, ben bu modeli vardır:Django Yönetici: modelde tanımlanmış özellikleri satır içi olarak görüntüleme

class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True, primary_key=True, related_name='profile') 
    ... 
    @property 
    def age(self): 
     if self.birthday is None: 
      return None 

     td = datetime.date.today() - self.birthday 
     return td.days/365 

Soru: nasıl Kullanıcı üzerinde bir çizgi içi 'yaş' gösteriyor?

class UserProfileInline(admin.StackedInline): 
    model = UserProfile 
    fk_name = 'user' 
    max_num = 1 
    fieldsets = [ 
     ('Demographics', {'fields': ['birthday', 'age']}), 
    ] 

Ben() yaş 'dahil olmak üzere bu gibi bir kaç şey, denedim Inline'ın bir 'get_age' gaz giderici tanımlayan vb Bunlar bu hatanın bazı sürümünde neden: Bu benim ne var :

ImproperlyConfigured: 'UserProfileInline.fieldsets[1][1]['fields']' refers to field 'age' that is missing from the form. 

cevap

25

yanı readonly_fields tuplea alan ekleyin.

Not: Bu yalnızca Django 1.2+ sürümlerinde çalışır.

+0

Yukarıda gösterildiği gibi readonly_fields = ['age',] sınıfına UserProfileInline eklediğimde, bir hata almıyorum, ancak admin'de hiçbir şey göstermiyor. Bir şey mi eksik? Django 1.2'deyim ama hala yolumu öğreniyorum - yardımın için teşekkürler. – Joe

+0

Bu garip - işe yaramalı. Sunucunun yeniden başlatıldığından emin misiniz? –

+2

Bunu başarıyla Django 1.6'da kullandım. – dustinfarris

İlgili konular