Django OneToOneField和管理UI

Django OneToOneField和管理UI,django,django-admin,Django,Django Admin,我对如何在Django中建模关系感到困惑,这样就可以在Django管理中内联编辑关系 让我解释一下情况 我有一个客户模型和一个地址模型。在客户模型中,我与地址有一个OneToOneField关系,一次用于计费,一次用于发货地址 class Address(models.Model): pass class Employee(models.Model): billing_address = models.OneToOneField(Address) shipping_ad

我对如何在Django中建模关系感到困惑,这样就可以在Django管理中内联编辑关系

让我解释一下情况

我有一个客户模型和一个地址模型。在客户模型中,我与地址有一个OneToOneField关系,一次用于计费,一次用于发货地址

class Address(models.Model):
    pass

class Employee(models.Model):
    billing_address = models.OneToOneField(Address)
    shipping_address = models.OneToOneField(Address)
    # Many more such fields
现在有了这个模型,没有简单的方法让它们在管理中内联。我试过以下方法

class AddressInline(admin.TabularInline):
    model = Address

class Customer(admin.ModelAdmin):
    inlines = [AddressInline, ]
我不断地犯错误

<class 'employee.admin.AddressInline'>: (admin.E202) 'employee.Address' has no ForeignKey to 'employee.Customer'.
:(admin.E202)“employee.Address”没有指向“employee.Customer”的外键。
现在我知道还有其他类似的bug。即

但我认为我的问题与这篇文章略有不同。请帮忙

#1
models.py

类计费地址(models.Model):
employee=models.OneToOneField(to=employee,related\u name='billing\u address')
员工类别(models.Model):
#还有更多这样的领域
admin.py

class AddressInline(管理列表行):
型号=计费地址
额外=1
@行政登记(员工)
类EmployeeAdmin(admin.ModelAdmin):
inlines=[AddressInline,]
#2
models.py

类地址(models.Model):
name=models.CharField(最大长度=250)
employee=models.ForeignKey(to=employee,related_name='addresses')
员工类别(models.Model):
#还有更多这样的领域
admin.py

class AddressInline(管理列表行):
型号=地址
@行政登记(员工)
类EmployeeAdmin(admin.ModelAdmin):
inlines=[AddressInline,]
完整示例:

models.py

class公司(models.Model):
通过
类别CompanyScheduler(models.Model):
公司=型号。OneToOneField(
to=公司,
相关的_name='scheduling',
在_delete=models.CASCADE上,
)
start=models.DateField()
finish=models.DateField()
管理员

class CompanyScheduleLine(管理列表行):
型号=公司时间表行
额外=1
@管理员注册(公司模型管理员)
类CompanyModelAdmin(admin.ModelAdmin):
内联线=[
时间表行,
]
用户界面


我遇到的问题是django的一对一关系。你给出的例子并没有解决这个问题,我给出的第一个例子解决了这个问题。您需要做的只是在第二个模型中声明关系,而不是在第一个模型中,或者在“AddressAdmin”中使用内联。很可能你还没有试过)是的,我看到了你的解决方案。您正在更改数据库设计以适应django,这不是一个可接受的解决方案。当您看到数据库表时,外键关系被反转,这是不正确的。