我的模特看起来像这样:
Location:
state
county
city
street
Building:
name
location = ForeignKey(Location)
现在,在管理员中,在修改Building
时,我希望能够以这种方式编辑位置:
所以,它就像一个内联,但在Location
中有Building
,而不是相反的方式。
答案 0 :(得分:0)
如果您在建筑物和位置之间保持一对一的关系,那么您的问题可能更容易解决。例如,通过从位置继承建筑物或将位置字段集成到建筑物中。
我认为没有多少建筑物共用同一个位置。因此,无论如何,使用外键都不会节省太多钱。这个外键也使编辑变得复杂。特别是,如果您想要位置组件的单独输入字段。通常,在创建新的位置条目之前,您首先必须在现有位置搜索匹配项。
以下示例使构建Location的子类并将构建和位置字段分组为admin表单的两个部分。您的应用程序可能需要进行一些微调。
模特:
class Location(models.Model):
state = models.CharField(max_length=30)
county = models.CharField(max_length=30)
city = models.CharField(max_length=30)
street = models.CharField(max_length=30)
class Building(Location):
name = models.CharField(max_length=120)
管理员表格:
class BuildingAdmin(admin.ModelAdmin):
fieldsets = (
('Building', {
'fields': ('name',)
}),
('Location', {
'fields': (('state', 'county', 'city', 'street'),)
}),
)
admin.site.register(Building, BuildingAdmin)