我希望有人可以在这里帮助我;在学习网络开发的这一部分中停留了一段时间。我在PyCharm社区版中使用django。 Apache和MySQL的一切似乎都运行良好。我处于制作html模板的阶段,并且能够将数据记录到MySQL数据库中。我想从数据库中检索数据到模板中,但是它不起作用,并且在PyCharm中定义视图时收到警告,提示“类'...'的未解析属性引用'...'”。这些是我的文件:
# views.py
from django.shortcuts import render
from .models import AirplanePics # AirplanePics is a model
def pictures(request):
obj = AirplanePics.objects.get(id=1)
context = {
'datax': obj,
}
return render(request, 'pictures.html')
在模型中,我尝试了在该论坛上阅读的解决方法,但是它只是识别了“对象”(在views.py类中,并删除了警告]
# models.py
from django.db import models
class AirplanePics(models.Model):
author = models.CharField(max_length=30)
title = models.CharField(max_length=30)
description = models.TextField()
def __str__(self):
return self.author
# models.py (with the workaround)
from django.db import models
class BaseModel(models.Model):
objects = models.Manager()
class Meta:
abstract = True
class AirplanePics(BaseModel):
id = models.AutoField(primary_key=True)
author = models.CharField(max_length=30)
title = models.CharField(max_length=30)
description = models.TextField()
def __str__(self):
return self.author
我只想显示作者(例如):
# pictures.html
<h1>{{datax.author}}</h1>
...,但是运行服务器时页面不显示任何内容。另外:
# urls.py
from django.urls import path
from .views import pictures, home
urlpatterns = [
path('pictures/', pictures, name='pictures'),
path('home/', home, name='home')
]
为什么不显示它,是您没有将上下文传递给模板。
def pictures(request):
obj = AirplanePics.objects.get(id=1)
context = {
'datax': obj,
}
return render(request, 'pictures.html', context)
一旦删除图片并创建另一个图片,ID将被更改,因此最好调用。您的第一个模型足以胜任这项工作。
obj = AirplanePics.objects.first()