Django Admin:向模板页面添加自定义字段

时间:2013-12-12 00:35:25

标签: python django django-cms

我是Django的新手所以这可能是一个简单的问题。我正在尝试使用Django构建一个投资组合网站。我想有一个主页,投资组合页面,投资组合详细信息页面和联系页面。将有大约20个项目组合详细信息页面 - 项目A,项目B,项目C.每个项目(项目组合详细信息页面)都有多个区域,我可以输入通过Django管理员填充的文本。如何在管理中为每个“投资组合详细信息”页面(标题,项目名称,URL,描述)创建自定义字段并在页面模板中显示它们?

我很困惑,因为我使用Django管理员中的页面部分并为每个页面添加自定义字段,还是使用这些自定义字段创建自定义应用程序?然后让我们说项目B需要额外的奖励领域。如何在Django管理员的Project B页面中添加该自定义字段?

1 个答案:

答案 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)

我不能百分之百地说这会对你提出的问题有所帮助,但我建议你试试这个应用,看看它与你想要的有多接近。