だから私は何か変わったものを見つけました。私は私の管理ページに表示させたいフィールドのどれもそこにないことに気づいただけです。失敗したモデルは、Userモデルの拡張であり、oneToOne関係を持つ "Profile"モデルです。コードは次のようになります。Django - list_display属性がモデルにOneToOneを含むモデルのフィールドを表示していない
models.py
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
# Create your models here.
#We need to extend the User Model
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.CharField(max_length=4096, null=True)
email_confirmed = models.BooleanField(default=False)
def __str__(self):
return self.user.username
def get_username(self):
return self.user.username
def get_bio(self):
return self.bio
def get_email_confirmed(self):
return self.email_confirmed
@receiver(post_save, sender=User)
def update_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
instance.profile.save()
admin.pyは
from django.contrib import admin
from .models import Profile
# Register your models here.
class ProfileAdmin(admin.ModelAdmin):
list_display = ('email_confirmed', 'bio')
admin.site.register(Profile)
しかし、これらの変更で、管理者ページには次のようになります。
残念なことに、その解決策は、「MediaDefiningClsasオブジェクトは反復可能ではありません」というメッセージでプログラムをクラッシュしました。 – Alien13
インラインなどを使用しましたか?私は私の個人的なgitから私のコードを反映するために私の答えを編集しています –
私はインラインを使用していないので、今のところ現時点では。 – Alien13