2013-12-12 174 views
0

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

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

回答

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) 

随着你所描述的,这听起来像你想在Project管理页面编辑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) 

我不能说百分之百,这会为你所问的工作,但我建议给试一试,看看它与你想要的有多接近。

相关问题