我在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)
但它不起作用。
那么,我该如何解决这个问题?
答案 0 :(得分:0)
你这里有很多位,但没有一个是相互联系的。
主要问题是你的网址;它没有指向你的观点。您应该将它指向您已定义的视图函数,而不是使用在url本身中声明的TemplateView:
url(r'^scoreresults$', views.scoreresults, name='tcresults')
您似乎根本没有使用序列化程序;而且你不需要它。