为什么这个Django模型表单无效?

2024-10-01 17:27:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两种型号:

ProcessDao
  ** normal fields **
  resource = models.ForeignKey(ResourceData, related_name='processes')

ResourceData
  ** Normal Fields **

下面的代码在我的视图.py公司名称:

^{pr2}$

有没有办法使pdForm有效?在


Tags: 代码name视图fieldsmodelsresourceprocessesnormal
2条回答

为什么你认为给窗体对象分配一个随机属性会使它有效?表单没有使用其实例属性来检查其有效性,文档中也没有任何内容暗示它会这样做。在

有几种方法可以正确地解决这个问题。首先,也可能是最丑的,是复制request.POST并将匹配对象的id插入其中。(您需要复制它,因为原始实例是不可变的)。在

更好的方法是从表单中完全排除字段(通过表单的Meta类),并在is_valid子句中执行以下操作:

object = pdForm.save(commit=False)
rd = ResourceData.objects.get(pick_date__exact = pdForm.cleaned_data['pick_date'])
object.resource = rd  
object.save()

你不应该在清理后的表单上分配空字段吗? 尝试类似于:

if pdForm.is_valid():
    cleanform = pdForm.save(commit = False).
    cleanform.resource = rd
    cleanform.save()

我只是不确定它是否能在资源是模型中唯一的字段的情况下工作。我是django noob,但它可以以多种形式分配ForeignKey字段。在

相关问题 更多 >

    热门问题