2016-04-14 16 views
1

pythonを使用してhtmlページにデータを追加しようとしていますが、ページ上の通常の要素とは別にページが空白です。djangoを使用してHTMLページのデータベースからデータを表示

def index(request): 
next = request.GET.get('next', '/admin') 
if request.method == "POST": 
    username = request.POST['username'] 
    password = request.POST['password'] 

    user = authenticate(username=username, password=password) 

    if user is not None: 
     if user.is_active: 
      login(request, user) 
      data = Students.objects.all() 
      return render_to_response("login/profile.html", {'data', data}) 
     else: 
      HttpResponse("Inactive User.") 
    else: 
     print("User Not Found!") 
     return HttpResponseRedirect(settings.LOGIN_URL) 

return render(request, 'login/home', {'redirect_to':next}) 

これは、これは私の学生のモジュール

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Title</title> 
</head> 
<body> 
    <h1>HEY!!!!</h1> 
    <p> 
     {{ data.f_name}} 
     {{ data.l_name }} 
     {{ data.student_number }} 
     {{ data.dob }} 
    </p> 
    <a href="/">logout</a> 
</body> 
</html> 

と私のhtmlページで私のview.py

class Students(models.Model): 
    student_number = models.IntegerField(primary_key=True) 
    f_name = models.CharField(max_length=20, blank=True, null=True) 
    l_name = models.CharField(max_length=20, blank=True, null=True) 
    dob = models.DateField(blank=True, null=True) 
    address = models.CharField(max_length=144, blank=True, null=True) 
    county = models.CharField(max_length=20, blank=True, null=True) 
    phone_number = models.CharField(max_length=45, blank=True, null=True) 
    email = models.CharField(max_length=45, blank=True, null=True) 
    gpa = models.IntegerField(blank=True, null=True) 
    course_code = models.ForeignKey(Courses, models.DO_NOTHING, db_column='course_code', blank=True, null=True) 
    college = models.ForeignKey(Colleges, models.DO_NOTHING, blank=True, null=True) 
    passwords = models.CharField(max_length=60, blank=True, null=True) 

    class Meta: 
     db_table = 'students' 

です。

私はこれをしばらく見てきましたが、私のページにこれが何も表示されない理由を見つけることができません。誰かが私がそれを感謝するのを助けることができたら!

答えて

1

私はしばらくかかったが、私は最終的に私の質問の答えを見つけたと思う。 views.py

data = Students.objects.all() 

stu = { 
    "student_number": data 
} 


return render_to_response("login/profile.html", stu) 

にこれを追加

それは私はこの `{%を追加したstu可変

{% for student in student_number %} 
    {{ student.f_name}} 
    {{ student.l_name }} 
    {{ student.student_number }} 
    {{ student.dob }} 
{% endfor %} 
2

あなたの文脈では、学生のリストであるStudent.objects.all()を渡します。そして、扱いは、テンプレート内の単一のオブジェクトとしてです。あなたはあなたのリストを反復する必要があります。

+0

に格納されたデータを反復します---- in ----%} 'しかし、私はハイフンの代わりに何を入れなければならないのか分かりません。 –

+0

ドキュメントの例を見てくださいhttps://docs.djangoproject.com/en/1.8/ref/templates/builtins/#for –

+0

{%%学生の%%} –

0

request.methodが(GETである必要があります)でない場合は、dataを渡すことができませんでした。あなたは返されました:

return render(request, 'login/home', {'redirect_to':next}) 

定義されていない変数があるときにDjangoテンプレートはエラーを表示しませんが、何も表示されません。

関連する問題