Использование встроенного админа Сообщение об ошибке без внешнего ключа - PullRequest
0 голосов
/ 04 ноября 2019

Сообщения об ошибках


<class 'app.inlines.ContactInline'>: (admin.E202) 'delegator.Contact' has no ForeignKey to 'delegator.Organisation'.

Я намереваюсь использовать модель Контакт в Организации, а также в Пользователе (Участнике) и в итоге получил сообщения об ошибках выше.

models.py:

class Member(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    group = models.ForeignKey(Group, on_delete=models.CASCADE)
    role = models.CharField(max_length=20, choices=ROLE_CHOICES)
    contact_detail = models.OneToOneField(Contact, null=True, on_delete=models.SET_NULL)

class Organisation(TenantMixin):
    key = models.CharField(max_length=24, unique=True)
    type = models.CharField(max_length=3, choices=TYPE_CHOICES, default='LN')
    name = models.CharField(max_length=128)
    contact_detail = models.OneToOneField(Contact, null=True, on_delete=models.SET_NULL)
    ...

admin.py

@admin.register(Organisation)
class OrganisationAdmin(admin.ModelAdmin):
    fields = ['key', 'type', 'name', 'domain_url', 'schema_name']
    actions = ("export_as_csv",)

    inlines = [ContactInline]


@admin.register(Member)
class UserAdmin(admin.ModelAdmin):
    list_display = ('user', 'group', 'role')

    inlines = [ContactInline]

inlines.py

class ContactInline(admin.StackedInline):
    model = Contact
    extra = 0
    max_num = 1

    fieldsets = [
        (None, {'fields': ['address']}),
        (None, {'fields': ['zipcode', 'place']}),
        (None, {'fields': ['country']}),
        (None, {'fields': ['phone_landline', 'phone_mobile', ]}),
        (None, {'fields': ['website']}),
    ]

Это не совсем то, что я ожидал,Есть ли другая возможность сделать это, не создавая две дополнительные модели для контактов организации и контактов пользователей и связывая их с отношением внешнего ключа?

...