[英]Django Admin: add custom fields to template pages
我是Django的新手,所以这可能是一个简单的问题。 我正在尝试使用Django构建投资组合网站。 我想要一个主页,投资组合页面,投资组合详细信息页面和联系页面。 大约有20个投资组合详细信息页面-项目A,项目B,项目C。每个项目(投资组合详细信息页面)都有多个区域,我可以在其中输入通过Django管理员填充的文本。 如何在管理中为每个“投资组合详细信息”页面创建自定义字段(标题,项目名称,URL,描述),并将其显示在页面模板中?
我感到困惑,是因为我使用Django管理员中的pages部分并为每个页面添加自定义字段,还是使用这些自定义字段创建自定义应用? 假设项目B需要额外的奖项领域。 如何仅在Django管理员中为Project B页面添加该自定义字段?
没有理由仅通过将它们与外键链接就无法将任何数量的字段添加到项目中。
项目/模型.py
from django.db import models
class Project(models.model):
name = models.CharField(max_length=100)
class ProjectField(models.model):
project = models.ForeignKey(Project)
fieldname = models.CharField(max_length=50)
value = models.TextField(max_length=2000)
根据您所描述的内容,听起来您想在Project
admin页面中编辑ProjectField
值。 管理页面通常使用inlines处理 。
以上述模型为例:
项目/admin.py
from projects import models
from django.contrib import admin
class ProjectFieldInline(admin.StackedInline):
model = models.ProjectField
extra = 0
class ProjectAdmin(admin.ModelAdmin):
inlines = [ProjectFieldInline]
admin.site.register(models.Project, ProjectAdmin)
我不能说百分之一百可以满足您的要求,但我建议您尝试一下该应用程序,看看它与您想要的距离有多近。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.