Ответ 1
Добавьте поле в кортеж readonly_fields
.
Обратите внимание, что это работает только в Django 1.2 +.
Это продолжение question. Как отображать свойства, определенные на дочерней модели в строке inline на родительском? Для иллюстрации у меня есть эта модель:
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
Вопрос: как мне показать "возраст" в строке "Пользователь"? Это то, что у меня есть:
class UserProfileInline(admin.StackedInline):
model = UserProfile
fk_name = 'user'
max_num = 1
fieldsets = [
('Demographics', {'fields': ['birthday', 'age']}),
]
Я пробовал несколько таких вещей, в том числе "age()", определяя getter для get1age для Inline и т.д. Они приводят к некоторой версии этой ошибки:
ImproperlyConfigured: 'UserProfileInline.fieldsets[1][1]['fields']' refers to field 'age' that is missing from the form.
Добавьте поле в кортеж readonly_fields
.
Обратите внимание, что это работает только в Django 1.2 +.