Python中文
首页
教程
问答
标签
搜索
登录
注册
Django:ValueError:无法创建表单字段,因为其相关模型尚未加载y
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在做的一个Django项目有点麻烦。我现在有两个应用程序,它们需要一些重叠。我实际上只开始了第二个项目(称为<code>workflow</code>),我正试图为该应用程序制作第一个表单。我的第一个应用程序叫做<code>po</code>。在<code>workflow</code>应用程序中,我有一个名为<code>WorkflowObject</code>的类,该类(目前)只有一个属性——在<code>po/models.py</code>中定义的<code>PurchaseOrder</code>的外键。我用<code>from po.models import PurchaseOrder</code>导入了该类。</p> <p>我要做的是有一个页面,用户可以在其中创建一个新的<code>PurchaseOrder</code>。这很好(与我在<code>PurchaseOrder</code>应用程序中使用的表单相同),然后使用该类的实例创建<code>WorkflowObject</code>。现在的问题是,我得到了错误:<code>ValueError: Cannot create form field for 'purchase' yet, because its related model 'PurchaseOrder' has not been loaded yet</code>。我真的不知道从哪里开始。它工作正常(允许我创建一个新的<code>PurchaseOrder</code>,并将其主键转发到url),直到我添加了一个视图,该视图允许我创建一个新的<code>WorkflowObject</code>。我会把具体的观点放在这里:</p> <pre><code>from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render, get_object_or_404 from django_tables2 import RequestConfig from po.models import PurchaseOrderForm, PurchaseOrder from workflow.models import POObject, WorkflowForm def new2(request, number): po=PurcchaseOrder.objects.get(pk=number) if request.method == 'POST': form = WorkflowForm(request.POST) if form.is_valid(): new_flow = form.save() return HttpResponse('Good') else: return render(request, 'new-workflow.html', {'form': form, 'purchase': po}) else: form = WorkflowForm() return render(request, 'new-workflow.html', {'form': form, 'purchase': po}) </code></pre> <p>似乎导致错误的代码行(或者至少是回溯中显示的一行)是:</p> <pre><code>class WorkflowForm(ModelForm): purchase = forms.ModelChoiceField(queryset = PurchaseOrder.objects.all()) </code></pre> <p>编辑: 我似乎犯了一个非常小的错误,在我对<code>WorkflowObject</code>的定义中加入了括号,也就是说,我说的是<code>purchase=models.ForeignKey('PurchaseOrder')</code>,而不是<code>purchase=models.ForeignKey(PurchaseOrder)</code></p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我有一个类似的问题,并且能够通过在models.py文件中声明所有类模型下面的所有modelForm类来解决这个问题。这样,模型类在modelForm类之前加载。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何替换子字符串,但前提是它正好出现在两个单词之间
3 回答
如何替换字典中所有出现的指定字符
5 回答
如何替换字典中所有键的第一个字符?
1 回答
如何替换字典所有键中的子字符串
8 回答
如何替换字符串python中的变量值?
2 回答
如何替换字符串Python中的第二次迭代
3 回答
如何替换字符串y Python中不等于字符串x的所有内容?
6 回答
如何替换字符串中出现的第n个单词?
2 回答
如何替换字符串中单词的一部分
8 回答
如何替换字符串中同时出现的2个或更多特殊字符或下划线
6 回答
如何替换字符串中指定位置(索引)的字符?
10 回答
如何替换字符串中某个字符的所有匹配项?
4 回答
如何替换字符串中的
6 回答
如何替换字符串中的一个字符
9 回答
如何替换字符串中的主题(固定位置)
8 回答
如何替换字符串中的分隔逗号?
8 回答
如何替换字符串中的列名(python)?
3 回答
如何替换字符串中的制表符?
6 回答
如何替换字符串中的单个单词而不是用相同的字符替换其他单词
9 回答
如何替换字符串中的单个字符?
4 回答