我正在尝试制作一个表单来编辑其父模型中的 ManyToMany 字段的值。例如,我有类似于这三个模型的东西:
class Language(models.Model):
label = models.CharField()
class Word(models.Model):
language = models.ForeignKey(Language)
word = models.CharField()
entries = models.ManyToManyField(Entries, null=True, blank=True)
class Entries(models.Model):
entry = models.CharField()
每种语言大约有 50 个单词。每个单词都有一个或两个条目。
我正在生成表单集来编辑给定语言的条目,如下所示:
class WordForm(forms.ModelForm):
class Meta:
model = Word
hidden = ('language', )
PronounFormSet = inlineformset_factory(Language, Word,
can_delete=False, extra=0, form=WordForm)
这给了我一个<select>
允许我添加/删除 Word.entries 的条目。但是,我想允许用户直接编辑字段 Entries.entry (即该字段Entries.entry
应该在 CharField() 中。如何修改我的 WordForm 以允许这样做?
我知道可能有更好的方法来做到这一点(例如不同的数据库模式),但我受到遗留实现的严重限制。