当我尝试将一个属性与另一个具有M对M关系的属性相关时,我收到此错误:
get()返回了多个主题-返回2!
你们能告诉我这是什么意思,也许可以提前告诉我如何避免此错误?
楷模
class LearningObjective(models.Model):
learning_objective=models.TextField()
class Topic(models.Model):
learning_objective_topic=models.ManyToManyField(LearningObjective)
topic=models.TextField()
输出 LearningObjective.objects.all()
[<LearningObjective: lO1>, <LearningObjective: lO2>, <LearningObjective: lO3>]
输出 Topic.objects.all()
[<Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>, <Topic: Topic object>]
意见
def create_themen(request):
new_topic=Topic(topic=request.POST['topic'])
new_topic.save()
return render(request, 'topic.html', {'topic': topic.objects.all()})
def create_learning_objective(request):
new_learning_objective=LearningObjective(learning_objective=request.POST['learning_objective'])
new_learning_objective.save()
new_learning_objective_topic=Topic.objects.get(topic=request.POST['topic'])
new_learning_objective_topic.new_learning_objective_topic.add(new_learning_objective)
return render( request, 'learning_objective.html', {
'topic': Topic.objects.all(),
'todo': TodoList.objects.all(),
'learning_objective': LearningObjective.objects.all()
})
get()
返回了多个主题-返回了2个!
上面的错误表明你在数据库中有多个记录,这些记录与你使用get()诸如
Model.objects.get(field_name=some_param)
为了避免将来发生此类错误,你始终需要根据架构设计进行查询。在你的情况下,你设计了一个具有多对多关系的表,因此显然该字段将有多个记录,这就是你收到上述错误的原因。
因此,get()
应使用filter()
它将返回多个记录而不是使用。如
Model.objects.filter(field_name=some_param)
问题内容: 我的查询导致以下错误: 消息512,级别16,状态1,过程Item_insupd,第17行 子查询返回了多个值。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。 询问: 我怀疑这种情况的发生是因为我的子查询不包含,但是不幸的是,我不知道如何构造正确的子句。 问题答案: 我怀疑问题出在此字符串中(您的代码中的第26行): 看起来像返回多个行,所以您遇到了错
问题内容: 我正在尝试从我的docker文件中创建一个docker镜像,其中包含以下内容 哪个失败并出现以下错误 我在Ubuntu 14.04.4上运行 我尝试重新启动docker,清理所有docker映像,安装但无济于事。 我不知道这是怎么了。 问题答案: 因为您有一个https来源。在执行更新之前安装。
我用的是parse.com。每个包里面都有很多钻子,每个品类里面都有很多包。 我卡住了。然后(函数(result,result2,result3)在最后一行。promise可以有多个promise,它是可变的。有没有一种方法可以写出如下内容: 谢谢!
下面的问题来自于CodingBat:给定一个数组,是否可以选择一组整数,使其与给定的目标相加? 站点作者提供了以下解决方案: 假设我想尝试下面的例子,其中nums=[2,4,8]并调用groupSum(0,nums,10)。 我看到将调用和。 调用和 调用和 等等。 在处理代码时,我看到了以下调用: 我看到应该返回true,因为第一行: ,但我对其他调用感到困惑,如。由于,从第一行开始,它应该清楚
问题内容: 我正在用Django + jQuery测试ajax。我认为: 这在我的模板中: 我的问题是-为什么这会在我的HTML页面中返回“ Not ajax”? 问题答案: 我不知道你怎么了 我测试并取得了良好的消息:。我的代码: urls.py views.py templates / home.html
当一个弹出窗口使用android studio关闭时,我遇到了以下错误。代码正常工作,但logcat上出现以下错误: java代码: