没有理由不能通过将它们与外键链接来为项目添加任何数量的字段。
项目/ 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)
我不能说百分之百,这会为你所问的工作,但我建议给试一试,看看它与你想要的有多接近。