【问题标题】:How can I show model data's contents in html file?如何在 html 文件中显示模型数据的内容?
【发布时间】:2017-02-18 12:59:34
【问题描述】:

我写在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>

但是现在,<h2>Your score is {{ user.result }} </h2> 的这部分 {{ user.result }} 在我的浏览器中是空白的。

我写在models.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)

所以,ImageAndUser 模型有结果数据。 我无法理解如何在 results.html 中指定 ImageAndUser 模型。 此外, 我写在serializer.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)

现在,我在views.py中写了

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

在 urls.py 中

from django.conf.urls import url
from . import views
from django.views.generic import TemplateView

urlpatterns = [
    url(r'^scoreresults$', TemplateView.as_view(template_name='registration/accounts/results.html'),
        name='tcresults'),
]

但它不起作用。

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

【问题讨论】:

  • 你能展示一下你的观点吗?
  • 我没有在views.py中写任何与results.html相关的东西
  • 那么,您的 html 模板何时以及如何使用?
  • 哦,真的吗?那么,我应该在 views.py 中写什么?
  • .tc() 方法是什么?为什么你发布了一个呈现完全不同模板的视图?序列化程序与任何事情有什么关系?你的网址是什么样的?你实际上要去哪个网址?

标签: python html django


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢,你的评论。我写了你的代码,但它不起作用。我该怎么办?
猜你喜欢
  • 2018-11-22
  • 2021-10-17
  • 2012-05-28
  • 2021-12-08
  • 2012-02-16
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
相关资源
最近更新 更多