使用Django做一个简单的学习日志系统,在models模块中两个类之间的调用出现问题
我现在在学用Django做一个简单的学习日志项目,models.py里面有两个类,一个是topic主题,一个是entry(对主题进行详细记录),我希望entry类可以将创建的topic展示出来,但是我点击某一个主题进去页面是报错的,看里面的报错大概是def __str__(self)这里面有点问题,但是不会改,有没有哪位朋友可以帮我指导一下怎么改呀?网页内容及点击链接后的报错是这样的:我写的源代码如下:
from django.db import models
# Create your models here.
class Topic(models.Model):
#创建记录用户学习主题的类,并继承Model父类属性(方法)
text=models.CharField(max_length=20)
# charfield方法可以存储字符或文本组成的数据,这里设置了存储字符的最大长度
date_added=models.DateTimeField(auto_now_add=True)
# DateTimeField方法可以记录日期和时间数据,auto_now_add表示每次用户创建新主题自动记录当前日期和时间
def __str__(self):
#返回存储在属性text中的字符串
return self.text
class Entry(models.Model):
'''记录学到的有关某个主题的具体知识'''
topic=models.ForeignKey(Topic,on_delete=models.CASCADE)
#主题直接使用Topic类中定义的主题(引用Topic数据表中的text记录,并且设置级联删除)
text=models.TextField() #不需要设置长度限制
date_added=models.DateTimeField(auto_now_add=True)
#按创建顺序呈现条目,并在每个条目旁边放置时间戳
class Meta:
'''在Entry类中嵌套一个Meta类,用来存储用于管理模型的额外信息,它让我们能够设置一个特殊属性
让Django在需要时使用Entries来表示多个条目。如果没有这个类,Django将使用Entrys来表示多个条目'''
verbose_name_plural='entries'
def __str__(self):
'''返回模型的字符串表示'''
return self.topic zzong2019 发表于 2022-1-23 14:10
是啊,那你知道怎么能把topic转换成字符串类型嘛?
用str() 本帖最后由 isdkz 于 2022-1-23 14:11 编辑
从那里的提示可以猜测__str__得返回一个字符串类型,你把__str__里面的返回值加个str()看看 isdkz 发表于 2022-1-23 14:06
__str__得返回一个字符串类型
是啊,那你知道怎么能把topic转换成字符串类型嘛?
页:
[1]