0

all_QS に追加する属性をテンプレートに表示するのに苦労しています。

次のようなマネージャーがいます。

def created_by(self, _userProfile, dateGt=None, dateLt=None):

    results = self.filter(creator=_userProfile, ...) //Some QS here

    for result in results:
        result.finished = "It works!"
    for result in results:
        print result.finished
    return results

これはコンソールに表示されます: (2 つのイベントがあります)。forループを終了した後もデータがまだそこにあることを確認するために、デバッグとして二重のforループを実行しました。

    It works!
    It works!

そして、私はマネージャーに電話しています:

    events = Event.manager.created_by(some stuff here).order_by('-id')

そして、奇妙な部分: 上記の行の結果をテンプレートに渡し、次のように表示します。

{% for event in all_events %}
    <li><a href="{% url "edit_event" event_id=event.id %}">{{ event.title }} Finished:{{ event.finished }}</a></li>
{% empty %}
    <em>{% trans "NOTHING" %}</em>
{% endfor %}

そして、すべて(タイトル、IDなど)が表示されますが、「完成」部分は表示されません。

それはどこから来るのでしょうか?読みやすくするためにコードをトリミングしましたが、ここで削除したものは関係ないと思います。

ありがとう!

編集:

これがビューです(stackoverflow 4スペースのため、奇妙なインデントです)

def homepage(request):
variables = {}
if request.user.is_authenticated():
    datenow=datetime.now()
    me = request.user.get_profile()
    variables['all_events'] = Event.manager.created_by(me).order_by('-id') [:20]
context_instance = RequestContext(request)
template_name = "common/homepage.html"
return render_to_response(template_name, variables, context_instance)
4

1 に答える 1

0

最終的に Event モデルで finished() メソッドを作成し、テンプレートで直接 event.finished を呼び出しました。

それはそのように機能しますが、最初のセットアップがなぜうまくいかなかったのかはまだわかりません

于 2013-03-26T16:05:57.657 に答える