ユーザ(/auth/user/
)セクションのDjango管理者にカスタムカラムを追加したいと思います。Djangoユーザのカスタムカラムのカラム
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
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
birthday = models.DateField()
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
そしてadmin.pyに私はこのコードを持っている:私はlist_display
は、すべての作業を行う必要があることをここで読んだ
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
class ProfileInline(admin.StackedInline):
model = Profile
can_delete = False
verbose_name_plural = 'Custom fields'
class CustomUser(UserAdmin):
inlines = (ProfileInline,)
list_diplsay = ('birthday')
def get_inline_instances(self, request, obj=None):
if not obj:
return list()
return super(CustomUser, self).get_inline_instances(request, obj)
admin.site.unregister(User)
admin.site.register(User, CustomUser)
を、しかし中私の場合それは動作しません。私はその行を追加して以来私の管理パネルに変更が表示されません。
問題はどこですか?ありがとう!
編集:list_diplsay
をlist_display
に変更すると固定されます。今私はこれを得る:type object 'User' has no attribute 'birthday'
。何か案は?
この目的のためにリストを使用する必要があります。当初はメモリを節約するように設計されていましたが、今は無関係です。 '= ['birthday']' –
はい、おそらくそれもうまくいくでしょう。私たちは実際にOPが使用しているDjangoのバージョンを知っていません。 – Chris
これで「タイプオブジェクト 'User'に属性 'birthday''がありません。何か案が?ありがとう! – Cosocit