鱼C论坛

 找回密码
 立即注册
查看: 970|回复: 3

[已解决]使用Django做一个简单的学习日志系统,在models模块中两个类之间的调用出现问题

[复制链接]
发表于 2022-1-23 13:53:54 | 显示全部楼层 |阅读模式
2鱼币
我现在在学用Django做一个简单的学习日志项目,models.py里面有两个类,一个是topic主题,一个是entry(对主题进行详细记录),我希望entry类可以将创建的topic展示出来,但是我点击某一个主题进去页面是报错的,看里面的报错大概是def __str__(self)这里面有点问题,但是不会改,有没有哪位朋友可以帮我指导一下怎么改呀?网页内容及点击链接后的报错是这样的:
微信图片_20220123135042.png
微信图片_20220123135053.png
我写的源代码如下:
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
最佳答案
2022-1-23 13:53:55
zzong2019 发表于 2022-1-23 14:10
是啊,那你知道怎么能把topic转换成字符串类型嘛?

用str()

最佳答案

本帖被以下淘专辑推荐:

  • · django|主题: 61, 订阅: 0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-23 13:53:55 | 显示全部楼层    本楼为最佳答案   
zzong2019 发表于 2022-1-23 14:10
是啊,那你知道怎么能把topic转换成字符串类型嘛?

用str()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-23 14:06:28 | 显示全部楼层
本帖最后由 isdkz 于 2022-1-23 14:11 编辑

从那里的提示可以猜测__str__得返回一个字符串类型,你把__str__里面的返回值加个str()看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-1-23 14:10:42 | 显示全部楼层
isdkz 发表于 2022-1-23 14:06
__str__得返回一个字符串类型

是啊,那你知道怎么能把topic转换成字符串类型嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 14:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表