我有这个型号:
class option(models.Model):
warval = models.ForeignKey(war)
caption = models.CharField(max_length=20)
text = models.TextField(blank=True,null=True)
url = models.URLField(blank=True,null=True)
user = models.ForeignKey(User)
也有以下形式:
^{pr2}$假设我创建了一个“文本选项”的表单集形式。什么我想用“war”:w和“user”:u实例化这个表单集中的所有表单那个。还有如果这不可能,那我还有什么选择呢?在
你想要什么是可能的。我现在不记得是否有一些基于类的视图会自动为您做到这一点(我想不会),但是您可以不费吹灰之力就手动完成它。在
在viewpost方法中,在将formset中的表单实例化(查看一下this)并检查其有效性之后,可以iterate over formset's forms,并根据需要设置它们的user和warval。在
另一个选项是将user和warval设置为initial values,这样表单集中的每个表单都将拥有您想要的user和warval。在
如果您需要一个关于如何完成所有这些事情的示例,我可以尝试添加一些来帮助您,但是我认为django文档是最好的方法。。。。在
编辑: 与model's clean method一样,可以在formset的clean方法中为表单集(或formset中的表单)添加一些“默认”值。您可以尝试按照this步骤来包含您自己的clean方法,然后像这样在表单集中实例化每个表单(注意:我没有在我的计算机中尝试,但是如果必须的话,我会这样做):
希望有帮助!在
相关问题 更多 >
编程相关推荐