Встроенная модель администратора Django для пользователя - PullRequest
8 голосов
/ 29 сентября 2011

У меня есть модель как

class Employer(models.Model):
    create_user = models.ForeignKey(User,unique=False,null=True, related_name='%(class)s_user_create')
    update_user = models.ForeignKey(User,unique=False,null=True, related_name='%(class)s_user_update')

и я хотел бы перечислить все Employer объекты, пока я был в деталях пользователя в админ-панели Django.

Я написал что-то вроде

admin.py

class EmployerInline(admin.TabularInline):
    model = Employer

class UserAdmin(admin.ModelAdmin):
    inlines = [
               EmployerInline
    ]

admin.site.register(UserAdmin)

но выдает ошибку как 'MediaDefiningClass' object is not iterable

Как я могу перечислить работодателей, которые были созданы конкретным пользователем, когда я искал данные пользователя?

Спасибо

1 Ответ

11 голосов
/ 29 сентября 2011

Конкретная ошибка, о которой вы упоминаете, похоже, не имеет никакого отношения к тому, что происходит в вашем коде, поэтому я не уверен в этом. Однако у вас есть и другие ошибки, поэтому, возможно, их исправление также устранит эту ошибку.

Для начала вам нужно указать fk_name на вашем EmployerInline. Django автоматически разрешает внешний ключ в большинстве случаев, но, поскольку у вас есть два внешних ключа для одной и той же модели, вам нужно помочь Django.

class EmployerInline(admin.TabularInline):
    model = Employer
    fk_name = 'create_user'

Во-вторых, вы, возможно, только что пропустили его, но вы должны отменить регистрацию User перед его регистрацией. Также необходимо указать модель при регистрации:

admin.site.unregister(User)
admin.site.register(User, UserAdmin)
...