7

当我学习一门新的语言/框架时,我真正讨厌的事情是当我陷入一个看似容易解决的问题时,我是多么的无知。

我在 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 %}

任何援助将不胜感激。

4

2 回答 2

15
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 %}
于 2012-04-26T08:14:49.197 回答
2

您忘记传递变量。

return render_to_response(get_template, {'ri_achievement': ri_achievement})
于 2012-04-26T01:47:13.550 回答