使用django

时间:2016-04-14 18:42:10

标签: python html django

我正在尝试使用python将数据添加到html页面,但页面与页面上的常规元素不同。

这是我的views.py

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})

这是我的学生模块:

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'

我的html页面:

<!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>

我已经看了一段时间,但我似乎无法找到为什么我的页面上没有显示任何内容。如果有人可以提供帮助,我会很感激!

3 个答案:

答案 0 :(得分:2)

在您的上下文中,您传递Student.objects.all(),这是一个学生列表。然后将treat视为模板中的单个对象。您需要遍历列表。

答案 1 :(得分:2)

我花了一段时间,但我认为我终于找到了答案。

将此内容添加到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 :(得分:0)

另一个可能的原因是当/* USE DOWNLOADED LIBRARY */ // $this->load->library('csvimport'); // $tryOne = $this->csvimport->get_array(); $csv = $upload_data['full_path']; $tryOne = array(); if( file_exists( $csv ) ){ $file = fopen( $csv , 'r' ); // r flag is for readonly mode while( ( $line = fgetcsv( $file ) ) !== false ) { // if line exists $tryOne[] = $line; // add to array } fclose( $file ); } echo "<pre>"; print_r($tryOne); 不是request.method(应该是POST)时,您没有在上下文中传递GET。你回来了:

data

代替。当你有未定义的变量时,Django模板不会给你错误,但它也不会显示任何内容。