2016-03-26 20 views
-2

Bu kod ile sorun ne biliyorum ama alamadım "TypeError: 'işlevi' nesne değil iterable olan" Düzgün '/ filestream' için çalışır ancak '/ allfile'Neden TypeError olsun: 'function' nesnesi yinelenemez değil mi?

piton kodu için var

@app.route('/allfile') 
@login_required 
def allfile(): 
    fileStream = models.File.select().limit(100) 
    return render_template('filestream.html', filestream=filestream) 

@app.route('/filestream') 
#@app.route('/filestream/<username>') 
def filestream(username=None): 
    template = 'fileStream.html' 
    if username and username != current_user.username: 
     user =  models.User.select().where(models.User.username**username).get() # the ** is  the "like" operator (non-case sensitive comparison) 
     filestream = user.files.limit(100) 
    else: 
     filestream = current_user.get_filestream().limit(100) 
     user = current_user 
    #if username: 
     #template = 'user_stream.html' 
    return render_template(template, filestream=filestream, user=user) 

Eğeradında yerel değişken tanımlamak allfile() içinde

{% extends "layout.html" %} 

{% block content %} 
{% for file in filestream %} 
    <article> 
    <h2> 
     <a href="{{ url_for('filestream', username=file.user.username) }}"> 
     {{ file.user.username }} 
     </a> 
    </h2> 
    <i class="clock"></i> 
    <time data-time="{{ file.timestamp }}" }}"> 
     {{ file.timestamp.strftime('%Y-%m-%d %H:%M:%S') }} 
    </time> 
    <!-- <a href="{{ url_for('view_file', file_id=file.id) }}"  class="view">View</a>--> 
    <div class="file"> 
     <a href="{{ file.path}}"</a> 
     <img src="{{ file.path }}" alt=""  style="width:521px;height:512px;"> 
    </div> 
    </article> 
{% endfor %} 
{% endblock %} 
+0

tam geri bildirim sağlar –

+0

Ayrıca python kodunuzun kalan kısmı ... – Signal

cevap

1

HTML kodu Bir baş S ile, Ama şablona geçtiğinizde, küçük harf S ile filestream; Bu yerel olarak tanımlanmadı, bu nedenle Python, filestream() işleyicisine başvuran modül düzeyi adını kullanır.

İşlevlerinizde tutarlı büyük harf kullanımı kullandığınızdan emin olun.

İlgili konular