考虑 Django 中的这个简化模型:
class Item(models.Model):
title = models.CharField(max_length=200)
pub_date = models.DateTimeField()
class ItemDetail(models.Model):
item = models.ForeignKey(Item)
name = models.CharField(max_length=200)
value = models.CharField(max_length=200)
display_order = models.IntegerField()
有没有一种方法可以使用 admin 在同一页面上使用类似于以下形式的表单来编辑项目及其详细信息:
title: < >
pub_date: < >
details:
+-----------------+----------------------+-------------------------+
| name | value | diplay order |
+-----------------+----------------------+-------------------------+
|< >|< >|< >|
|< >|< >|< >|
|< >|< >|< >|
|< >|< >|< >|
|< >|< >|< >|
+-----------------+----------------------+-------------------------+
在哪里< >
将是数据输入的输入类型的占位符。
那么,我的问题是:我可以使用管理员来编辑 foreign key
吗?从 parent 的角度看关系?如果没有办法以这种方式使用 Django 的管理员编辑数据,那么尝试扩展/自定义管理员来执行此操作是否是个好主意?有关如何执行此操作的任何说明?
谢谢!
最佳答案
这实际上是 django 擅长处理关系的唯一方向——反之则更难(直接编辑子项的相关父项)。
要获得所需的格式,请查看 ModelAdmin 内联:
http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin
class ItemDetailInline(admin.TabularInline):
model = ItemDetail
class ItemAdmin(admin.ModelAdmin):
inlines = [
ItemDetailInline,
]
关于python - 主/详细页面的 Django 管理应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161477/