2010-08-09 36 views
15

Đây là bản theo dõi cho số question này. Làm cách nào để hiển thị các thuộc tính được xác định trên mô hình con trong nội dòng trên bố cục gốc? Để minh họa, tôi có mô hình này:Django Admin: làm thế nào để hiển thị các thuộc tính được xác định trên mô hình trong nội tuyến?

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 

Câu hỏi là: làm cách nào để hiển thị 'độ tuổi' trong nội dòng trên Người dùng? Đây là những gì tôi có:

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

Tôi đã thử một vài điều như thế này, trong đó có 'tuổi()', xác định một 'get_age' getter cho Inline, vv Họ dẫn đến một số phiên bản của lỗi này :

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

Trả lời

25

Thêm trường vào giá trị readonly_fields.

Lưu ý điều này chỉ hoạt động ở Django 1.2+.

+0

Khi tôi thêm readonly_fields = ['age',] vào lớp UserProfileInline như được hiển thị ở trên, tôi không gặp lỗi nhưng nó không hiển thị bất kỳ điều gì trong quản trị. Tui bỏ lỡ điều gì vậy? Tôi đang ở trên Django 1.2, nhưng vẫn học cách của tôi xung quanh - cảm ơn sự giúp đỡ của bạn. – Joe

+0

Điều đó thật lạ - nó sẽ hoạt động. Bạn có chắc là máy chủ đã khởi động lại không? –

+2

Tôi đã sử dụng thành công trong Django 1.6. – dustinfarris

Các vấn đề liên quan