如何在html文件中显示模型数据的内容?

时间:2017-02-18 12:59:35

标签: python html django

我在results.html中写道,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Score</title>
</head>
<body>
    <h1>Score</h1>
    <h2>Your score is {{ scoreresults.result }}</h2>
</body>
</html>

但现在,{{ user.result }}的{​​{1}}部分在我的浏览器中显示为空白。

我在models.py中写道

<h2>Your score is {{ user.result }}
</h2>

因此,ImageAndUser模型具有结果数据。 我无法理解如何在results.html中指定ImageAndUser模型。 此外, 我在serializer.py中写道

from django.db import models
from django.contrib.auth.models import User
class ImageAndUser(models.Model):
    user = models.ForeignKey("auth.User", verbose_name="imageforegin")
    result = models.CharField(max_length=64, null=True)

    def __str__(self):
        return '{} {}'.format(self.user,self.id)

现在,我在views.py中写道

from .forms import UserImageForm
from rest_framework import serializers
from .models import ImageAndUser

class ImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = ImageAndUser
        fields =(
            'image',
            'result',
            'user',
            'id',
        )

        read_only_fields = (
            'user',
        )

    def create(self, attrs):
        attrs['user'] = self.context.get('request').user
        print(attrs)
        return super(ImageSerializer,self).create(attrs)
在urls.py中

def scoreresults(request):
    d = {
        'scoreresults': ImageAndUser.objects.result(),
    }
    return render(request, 'registration/accounts/results.html', d)

但它不起作用。

那么,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你这里有很多位,但没有一个是相互联系的。

主要问题是你的网址;它没有指向你的观点。您应该将它指向您已定义的视图函数,而不是使用在url本身中声明的TemplateView:

url(r'^scoreresults$', views.scoreresults, name='tcresults')

您似乎根本没有使用序列化程序;而且你不需要它。