全部,
我正在尝试使用多字段初始化模型表单集。一个问题是我事先不知道 manytomanyfield 的名称(也不知道它绑定到的类)。
这是我的模型和表格:
class Book_model(models.Model):
title = models.CharField(max_length=BIG_STRING)
authors = models.ManyToManyField("Author_model",)
class Author_model(models.Model):
name = models.CharField(max_length=BIG_STRING)
class Book_form(ModelForm):
class Meta:
model = Book_model
class Author_form(ModelForm:
class Meta:
model = Author_model
Author_formset = modelformset_factory(Author_model,form=Author_form)
在我的代码的其他地方,我试图显示一个 Model_form 和一个 Author_formset。但是,当需要初始化该表单集时,我不确定该怎么做。那时我知道 m2m 字段的名称(“authors”)、父模型实例(Book_model)、父表单实例(Book_form)和表单集类(Author_formset)。我假设我只需要做这样的事情:
m2m_field = getattr(book,"authors")
qset = field.filter(<only authors for which there is a m2m relationship from this book>)
formset = Author_formset(queryset=qset)
但是,我不知道放入过滤器的正确术语。
有什么建议么?