Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么';这个循环不运行吗?_Python_Django_Model_Control Flow - Fatal编程技术网

Python 为什么';这个循环不运行吗?

Python 为什么';这个循环不运行吗?,python,django,model,control-flow,Python,Django,Model,Control Flow,如您所见,此代码允许用户创建称为图像的模型。问题是,当我想要创建图像时,实际上没有创建图像。带有讨厌的大写字母(打印图像)的打印测试在我多次输入信息后返回一个空列表 可能与此问题有关,我无法将打印测试添加到代码中的任何if/else循环中。它返回一个缩进错误,即使我检查了四个空格的所有缩进 我真的很困惑。我怀疑我误解了控制流程 views.py: index.html: 图像 $(函数(){ $(“#条款”)。自动完成({ 来源:“{%url'图像\应用程序:获取\图像“%””, 最小长度:1

如您所见,此代码允许用户创建称为图像的模型。问题是,当我想要创建图像时,实际上没有创建图像。带有讨厌的大写字母(打印图像)的打印测试在我多次输入信息后返回一个空列表

可能与此问题有关,我无法将打印测试添加到代码中的任何if/else循环中。它返回一个缩进错误,即使我检查了四个空格的所有缩进

我真的很困惑。我怀疑我误解了控制流程

views.py: index.html:

图像
$(函数(){
$(“#条款”)。自动完成({
来源:“{%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>