Python 为什么';这个循环不运行吗?
如您所见,此代码允许用户创建称为图像的模型。问题是,当我想要创建图像时,实际上没有创建图像。带有讨厌的大写字母(打印图像)的打印测试在我多次输入信息后返回一个空列表 可能与此问题有关,我无法将打印测试添加到代码中的任何if/else循环中。它返回一个缩进错误,即使我检查了四个空格的所有缩进 我真的很困惑。我怀疑我误解了控制流程 views.py: index.html:Python 为什么';这个循环不运行吗?,python,django,model,control-flow,Python,Django,Model,Control Flow,如您所见,此代码允许用户创建称为图像的模型。问题是,当我想要创建图像时,实际上没有创建图像。带有讨厌的大写字母(打印图像)的打印测试在我多次输入信息后返回一个空列表 可能与此问题有关,我无法将打印测试添加到代码中的任何if/else循环中。它返回一个缩进错误,即使我检查了四个空格的所有缩进 我真的很困惑。我怀疑我误解了控制流程 views.py: index.html: 图像 $(函数(){ $(“#条款”)。自动完成({ 来源:“{%url'图像\应用程序:获取\图像“%””, 最小长度:1
图像
$(函数(){
$(“#条款”)。自动完成({
来源:“{%url'图像\应用程序:获取\图像“%””,
最小长度:1,
});
});
{%用于图像%中的图像}
{{image.name}
{%endfor%}
创建一个图像
{%csrf_令牌%}
创建图像:
您从未保存过任何图像
执行
Image(废话)
只是在内存中实例化一个对象。您需要在实例上调用.save()
,或者执行Image.objects.create(blah)
以同时实例化和保存。您从未保存过任何图像
执行
Image(废话)
只是在内存中实例化一个对象。您需要在实例上调用.save()
,或者执行Image.objects.create(blah)
以同时实例化和保存。您的数据库中有任何条目吗?@MaximeLorant没有,原来我甚至没有包含save语句!编程有助于暴露一个人的心不在焉。你的数据库中有条目吗?@MaximeLorant没有,原来我甚至没有包含save语句!编程有助于暴露一个人的心不在焉。这并不能解决实例化模型后无法插入语句的问题。当我尝试在同一缩进级别上插入'parent_model.save()语句时,无论发生什么情况,它都会给我一个缩进错误。save()的缩进与父_模型等的缩进完全相同,所以我很困惑。这没有关系,但它阻止我解决这个问题。你可能在混合制表符和空格。请确保您的文本编辑器配置为在按Tab键时仅插入空格。我根本不使用Tab键。只有四个空格。假设此行中存在缩进错误:如果父对象不在image\u名称中,子对象不在image\u名称中:parent\u model=image(name=parent)parent\u model.save()child\u model=image(name=child,parent=parent\u model)child\u model.save()仔细检查编辑器是否不替换“空格”用标签。。。(许多人这样做,“开箱即用”)编辑:将它放入空闲状态并对其进行选项卡化,现在它可以工作了。感谢您的帮助。这并不能解决实例化模型后无法插入语句的问题。当我尝试在同一缩进级别上插入'parent_model.save()语句时,无论发生什么情况,它都会给我一个缩进错误。save()的缩进与父_模型等的缩进完全相同,所以我很困惑。这没有关系,但它阻止我解决这个问题。你可能在混合制表符和空格。请确保您的文本编辑器配置为在按Tab键时仅插入空格。我根本不使用Tab键。只有四个空格。假设此行中存在缩进错误:如果父对象不在image\u名称中,子对象不在image\u名称中:parent\u model=image(name=parent)parent\u model.save()child\u model=image(name=child,parent=parent\u model)child\u model.save()仔细检查编辑器是否不替换“空格”用标签。。。(许多人这样做,“开箱即用”)编辑:将它放入空闲状态并对其进行选项卡化,现在它可以工作了。谢谢你的帮助。
from django.shortcuts import render
from images_app.models import Image
def index(request):
images = Image.objects.all()
image_names = [a.name for a in images]
print images ### THIS RETURNS AN EMPTY LIST!!
if request.method == 'POST':
image_string = request.POST.get('get_image')
index = image_string.find('(')
# divide input into parent and child
if index == -1:
parent = image_string
child = None
else:
parent = image_string[0:index]
child = image_string[index+1:len(image_string)-1]
# print "Child is.. ", child.name ### THIS RETURNS AN INDENTATION ERROR
# create models based on input
if parent not in image_names and child not in image_names:
parent_model = Image(name=parent)
child_model = Image(name=child, parent=parent_model)
elif parent in image_names and child not in image_names:
parent_model = images.get(name=parent)
child_model = Image(name=child, parent=parent_model)
elif parent not in image_names and child in image_names:
child_model = images.get(name=child)
parent_model = Image(name=parent)
child_model.parent = parent_model
print "descendants are: ", parent_model.get_descendants()
else:
print "else"
return render(request, 'images_app/index.html', {'images':images})
def get_images(request):
term = request.GET.get('terms') #jquery-ui.autocomplete parameter
images = Image.objects.filter(name__istartswith=terms)
res = []
for i in images:
#make dict with the metadatas that jquery-ui.autocomple needs
dict = {'id':i.id, 'label':i.__unicode__(), 'value':i.__unicode__()}
res.append(dict)
return HttpResponse(simplejson.dumps(res))
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<title> images </title>
<script>
<script type="text/javascript">
$(function() {
$("#terms").autocomplete({
source: "{% url 'images_app:get_images' %}",
minLength: 1,
});
});
</script>
</head>
<nav>
<a href="/associate">associate</a>
</nav>
<body>
{% for images in images %}
{{ image.name }}
{% endfor %}
<section>
<h1>create an image</h1>
<form action="{% url 'images_app:index' %}" method="post">
{% csrf_token %}
<div class="ui-widget">
<label for="get_image">create image: </label>
<input id="get_image" name="get_image">
</div>
<div id="buttons">
<input type="submit" value="create" class="submit" name="create" />
</div>
</form>
</section>
</body>