2012-04-26 18 views
0

新しい言語/フレームワークを学ぶときに私が本当に嫌うのは、一見簡単に問題を解決するにはどうすれば無知な気がするのです。django for .htmlテンプレートページ(初心者)

私はhtmlページの中にdjango forループを持っていますが、何らかの理由でそれが動作しません。私は何かを見逃していて、自分で問題を解決することができないので、私はStackOverflowを使って私を助けます。

これは私がmodels.pyに私のクエリを実行しています私のモデルである:

class RIAchievement(models.Model): 
    riAchievementID = models.AutoField(primary_key=True, db_column="RIAchievementID") 
    userLanguageVersionID = models.ForeignKey(UserLanguageVersion, db_column="UserLanguageVersionID") 
    typeAchievementID = models.ForeignKey(TypeAchievement, db_column="TypeAchievementID") 
    riAchievementTypeUserDescription = models.CharField(max_length=255, blank=True, null=True, db_column="RIAchievementTypeUserDescription") 
    riAchievementDescription = models.TextField(max_length=2000, db_column="RIAchievementDescription") 
    auth_user_id = models.ForeignKey(auth_user, db_column="auth_user_id") 
    class Meta: 
    db_table="RIAchievement" 

models.pyファイルは私のプロジェクトに位置している場所です:GlobalXpy \ App_Dataに\ models.py

これは私のviews.pyファイル内のコードです:

from django.shortcuts import render_to_response 
from GlobalXpy.app_data.models import RIAchievement 

def index(request): 
    ri_achievement = RIAchievement.objects.all() 
    get_template = loader.get_template('ri_achievement.html') 
    return render_to_response(get_template) 

これは私のテンプレートファイル(ri_achievement.html)の内側にあるforループです:どのような援助がいただければ幸いです

{% for e in ri_achievement %} 
    <td> Preview Edit Duplicate Delete </td> 
    <td> FlagPath </td> 
    <td> AchievementType/RIAchievementTypeUserDescription </td> 
    <td> {{ e.riAchievementDescription }} </td> 
{% endfor %} 

+0

それが機能していないどのように明確にしてください。ページに移動しても、期待どおりの結果が得られますか? –

+0

forループが出力を表示する必要がある場合、データは表示されません。 forループは実行されていません。 – user1261774

+0

forループの前にまずテンプレートの 'ri_achievement'を表示してください。それにデータが含まれているかどうかチェックしますか? – Ahsan

答えて

7
from django.shortcuts import render 
from GlobalXpy.app_data.models import RIAchievement 

def index(request): 
    ri_achievement = RIAchievement.objects.all() 
    return render(request, 'ri_achievement.html',{'ri_achievement': ri_achievement}) 

{% if ri_achievement %} 
    There are {{ ri_achievement|length }} records: 
    {% for e in ri_achievement %} 
     <td> Preview Edit Duplicate Delete </td> 
     <td> FlagPath </td> 
     <td> AchievementType/RIAchievementTypeUserDescription </td> 
     <td> {{ e.riAchievementDescription }} </td> 
    {% endfor %} 
{% else %} 
    There are no records in the system 
{% endif %} 
+0

burhan、アドバイスありがとう。システムにレコードがないというメッセージが表示されます(10個のレコードが表示されているにもかかわらず)。コードがモジュール/データベースを正しく呼び出していることを確認するにはどうすればよいですか? – user1261774

+0

「システムにレコードがありません」と表示されている場合は、コードが正しく機能しています。 djangoシェル 'manage.py shell'を起動し、' GlobalXpy.app_data.models import RIAchievement'に続いて 'RIAchievement.objects.all()。count()'を実行します。 –

+0

これは、10 - データベース内のレコード数を出力します。 – user1261774

1

変数を渡すのを忘れました。テンプレートで

return render_to_response(get_template, {'ri_achievement': ri_achievement}) 
+0

私はあなたの提案を試みましたが、forループは実行されません(データは表示されません)。 – user1261774