沒有理由不能通過將它們與外鍵鏈接來爲項目添加任何數量的字段。
項目/ 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)
我不能說百分之百,這會爲你所問的工作,但我建議給試一試,看看它與你想要的有多接近。