我基本上有两个表:Page(PK = url)和PageProperty(PK = url + name)。
以下是我设置模型的方法:
class Page(model.Model):
url = model.CharField(primary_key=True, max_length=255, db_column='url')
#.....
class PageProperty(model.Model):
# table with compound key (url + name)
url = model.ForeignKey('Page', to_field='url', db_column='url', primary_key=True)
name = model.CharField(primary_key=True, max_length=20)
value = model.TextField()
我有一个ModelAdmin设置,所以我可以从Page内联编辑PageProperty。它是一个遗留数据库,我知道那里有很多数据。但是Admin只显示了一个PagePropertys,而不是全部。
答案 0 :(得分:0)
我认为您可能需要将extra
选项应用于TabularInline
。例如:
class PagePropertyInline(admin.TabularInline):
model = PageProperty
extra = 3
您可能会做一些神奇的事情来使额外项目的数量动态化(例如给定PageProperty
的{{1}}个对象的数量,但我会将其留给您。
我建议您继续阅读InlineModelAdmin options和Formsets。
答案 1 :(得分:0)
因为我认为非整数主键太过分了,所以我最终屈服并移植模式,为两个表使用自动生成的整数pk。之后,一切都顺利航行,Inlines完美运作。