我是Django的新手所以这可能是一个简单的问题。我正在尝试使用Django构建一个投资组合网站。我想有一个主页,投资组合页面,投资组合详细信息页面和联系页面。将有大约20个项目组合详细信息页面 - 项目A,项目B,项目C.每个项目(项目组合详细信息页面)都有多个区域,我可以输入通过Django管理员填充的文本。如何在管理中为每个“投资组合详细信息”页面(标题,项目名称,URL,描述)创建自定义字段并在页面模板中显示它们?
我很困惑,因为我使用Django管理员中的页面部分并为每个页面添加自定义字段,还是使用这些自定义字段创建自定义应用程序?然后让我们说项目B需要额外的奖励领域。如何在Django管理员的Project B页面中添加该自定义字段?
答案 0 :(得分:0)
没有理由不将任何数量的字段添加到项目中,只需将它们与外键相关联即可。
项目/ models.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)
根据您的描述,您似乎想要编辑ProjectField
管理页面中的Project
值。管理页面通常使用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)
我不能百分之百地说这会对你提出的问题有所帮助,但我建议你试试这个应用,看看它与你想要的有多接近。