簡體   English   中英

Django Admin:將自定義字段添加到模板頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM