如果您在建築物和位置之間保持一對一的關係,那麼您的問題可能更容易解決。例如,通過將建築物從位置分類或將位置字段集成到建築物中。
我假設沒有多少建築物共享相同的位置。因此,無論如何,使用外鍵到場所都不會節省很多。這個外鍵也使編輯變得複雜。特別是,如果您想要位置組件的單獨輸入字段。通常情況下,您首先必須在創建新的位置條目之前搜索現有位置進行匹配。
以下示例使構建位置的子類並將構建和位置字段分組爲管理表單的兩個部分。你的應用程序可能需要一些微調。
型號:
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)
也許你可以顯示scrennshot和你現在正在使用的admin.py代碼?也許你註冊的方式不對,不是嗎? – kovshenin 2010-10-21 08:06:51
@kovshenin:問題是,如果外鍵定義了建築與位置之間的N:1關係,則無法爲位置定義嵌入式表單。 – 2010-10-21 17:35:09