反向管理内联用法:错误消息没有外键

错误消息


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

我打算在组织中以及在User(Member)中使用模型Contact,最后出现上面的错误消息。

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,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']}),{'fields': ['country']}),{'fields': ['phone_landline','phone_mobile',]}),{'fields': ['website']}),]

这并非我所期望的。还可以在不为组织联系人和用户联系人创建两个额外模型并将它们与外键关系链接的情况下解决此问题吗?

avafavaf 回答:反向管理内联用法:错误消息没有外键

有一个应用程序可以克服此限制a,您可以如上所述创建模型,但可以在管理类中使用django-reverse-admin

然后,这些字段将按预期呈现,不仅显示为 str

本文链接:https://www.f2er.com/3165850.html

大家都在问