Dies ist ein Follow-up zu diesem question. Wie zeige ich Eigenschaften an, die für ein untergeordnetes Modell in einem inline auf dem übergeordneten Modell definiert sind? Zur Veranschaulichung: Ich habe dieses Modell:Django Admin: wie in einem Inline-Modell definierte Eigenschaften angezeigt werden?
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
Frage ist: Wie kann ich ‚Alter‘ in einer Inline-auf-Nutzer? Das ist, was ich habe:
class UserProfileInline(admin.StackedInline):
model = UserProfile
fk_name = 'user'
max_num = 1
fieldsets = [
('Demographics', {'fields': ['birthday', 'age']}),
]
ich ein paar Dinge wie diese versucht haben, darunter ‚Alter()‘, eine ‚get_age‘ Getter für die Inline-Definition usw. Sie in irgendeiner Version dieses Fehlers führen :
ImproperlyConfigured: 'UserProfileInline.fieldsets[1][1]['fields']' refers to field 'age' that is missing from the form.
Wenn ich readonly_fields = ['age',] zur Klasse UserProfileInline wie oben gezeigt hinzufüge, erhalte ich keinen Fehler, aber es zeigt nichts im Admin an. Fehle ich etwas? Ich bin auf Django 1.2, lerne aber immer noch herum - danke für deine Hilfe. – Joe
Das ist seltsam - es sollte funktionieren. Sind Sie sicher, dass der Server neu gestartet wurde? –
Ich habe das erfolgreich in Django 1.6 verwendet. – dustinfarris