Django Admin: How to display value of fields with list_display from two models which are in oneToOne relation?

余生颓废 提交于 2019-12-03 03:04:32

Finally!!! I solved it. As I thought it was simple, but I had to do it other way around and with multi table inheritance:

models.py
class Member(models.Model):
    ID = models.AutoField(primary_key=True)
    FIRST_NAME = models.CharField('First name', max_length=50)
    LAST_NAME = models.CharField('Last name', max_length=50)

# Using multi table inheritance - automaticly creates one to one field
class MemberDetail(Member):
    DATE_OF_BIRTH = models.DateField('Date of birth')
    EMAIL = models.EmailField('E-mail')
    PHONE = models.CharField('Phone', max_length=15)

Now for admin.py

admin.py
class MemberDetailAdmin(admin.ModelAdmin):
    list_display = ("FIRST_NAME", "LAST_NAME", "DATE_OF_BIRTH", "EMAIL", "PHONE")

admin.site.register(MemberDetail, MemberDetailAdmin)

That's it. Maybe, there is other solutions, but this is good for me.

You should just be able to do 'member_detail__email', etc. in list_display

Since it's a 1-1 you should have a backref, and associated fields are referenced using two underscores.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!