我正在尝试为以下场景构建正确的设计
- 一个
WidgetType
班 - 一个
Widget
类,来自类型WidgetType
- 每个
Widget
类都有一些设置,由给定的定义WidgetType
- 添加新的
Widget
时,我希望能够只选择允许的Setting
。
这是我自带的模型:
class Widget(models.Model):
title = models.CharField(max_length=200)
widgettype = models.ForeignKey('WidgetType')
class WidgetType(models.Model):
name = models.CharField(max_length=200)
class WidgetSettingOption(models.Model):
widgettype = models.ForeignKey('WidgetType')
key = models.CharField(max_length=200)
description = models.CharField(max_length=2000)
class Setting(models.Model):
widget = models.ForeignKey('Widget')
key = models.ForeignKey('WidgetSettingOption')
value = models.CharField(max_length=200)
虽然这解决了我的问题,但我觉得它不是最佳的。由于我不能仅将设置的键限制为管理表单中允许的一组值,而无需自定义管理表单
建议将不胜感激。