2013-12-12 218 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) 

我不能說百分之百,這會爲你所問的工作,但我建議給試一試,看看它與你想要的有多接近。

相關問題