这是我的问题
我正在尝试从通过外键连接到Subject模型的页面模型中获取数据。有什么办法可以快速获取数据?
urls.py
我正在尝试从page_set.filter对象中获取字段标题。
这是我的模型。py
from django.db import models
from ckeditor.fields import RichTextField
# Create your models here.
class Subject(models.Model):
title = models.CharField(max_length = 200)
slug = models.SlugField(blank = False)
visible = models.BooleanField(default = True)
position = models.IntegerField()
date_published = models.DateTimeField(auto_now_add = True)
date_updated = models.DateTimeField(auto_now_add=False)
def __str__(self):
return self.title
class Page(models.Model):
subject = models.ForeignKey(Subject, on_delete= models.CASCADE)
title = models.CharField(max_length = 200)
slug = models.SlugField(blank = False)
description = models.TextField()
thumbs = models.ImageField(blank = True)
visible = models.BooleanField(default = True)
position = models.IntegerField()
date_published = models.DateTimeField(auto_now_add = True,auto_now=False)
date_updated = models.DateTimeField(auto_now_add=False, auto_now=True)
def __str__(self):
return self.title
NewsFeed类(models.Model):
title = models.CharField(max_length = 200)
slug = models.SlugField(blank = False)
description = models.TextField()
thumbs = models.ImageField(blank = True)
visible = models.BooleanField(default = True)
position = models.IntegerField()
date_published = models.DateTimeField(auto_now_add = True)
date_updated = models.DateTimeField(auto_now_add=False)
def __str__(self):
return self.title
答案 0 :(得分:1)
Page.objects.filter(id=4)
导致 QuerySet
个Page
,而不是单个 Page
。即使QuerySet
包含一个元素,它也不是Page
(就像具有一个数字的列表一样,也不是数字)。或如filter(..)
documentation中指定:
返回新的
QuerySet
,其中包含与给定查找参数匹配的对象 。
您可以使用Page.objects.get(id=4)
获取一个Page
对象(假设存在,并且只有一个这样的对象存在,否则将引发错误)。或如get(..)
documentation中指定:
返回与给定查找参数匹配的对象,该对象应该 采用“字段查找”中所述的格式。
如果有多个对象,则如果未找到对象,则
get()
会引发MultipleObjectsReturned
找到了。MultipleObjectsReturned
例外是 模型类。
get()
会引发DoesNotExist
异常 给定的参数。此异常是模型的属性 课。