【问题标题】:django __str__ returned non-string(type tuple)django __str__ 返回非字符串(类型元组)
【发布时间】:2018-03-27 19:40:41
【问题描述】:

解决了。使用 m2m 字段。

models.py

class Student(models.Model):

【问题讨论】:

  • first_name 在哪里?
  • 正如错误所说,您在__str__ 中返回一个元组。您需要返回一个字符串。因此,如果你想返回self.nameself.campus,你应该使用return "{0} - {1}".format(self.name, self.campus),或者类似的格式。还要确保更改Comment 模型的return
  • 谢谢,但班级学生没问题,班级评论有问题。我认为 self.student.name 有问题

标签: python django python-3.x django-models


【解决方案1】:

在评论模型上使用这个:

def __str__(self):
    return self.created_by.first_name + ' ' + self.student.name

同样适用于学生模型:

def __str__(self):
    return self.name + ' ' + self.campus

【讨论】:

  • 感谢您的帮助
【解决方案2】:

重新定义__str__:

def __str__(self):
    return self.name+' '+self.campus

【讨论】:

  • 谢谢,但班级学生没问题,班级评论有问题。我认为 self.student.name 有问题
  • __str__ 都有问题。注释中的__str__ 也应该重新定义。没有User 模型,所以如果有first_name 字段,我就没有。
  • 所以你的意思是,我应该使用用户重新定义班级学生吗?反正 self.created_by.first_name 没问题,
  • 没有。在课堂上评论你有两个foreignKeys,第一个与Student模型连接,第二个与User连接。因此,您应该添加User 模型的定义或将Comment 的两个foreignKeys 与模型Student 连接。
  • 但是班级学生只是我的名单,我的意思是学生名单我应该与用户联系吗?还有其他解决方案吗?
猜你喜欢
  • 2021-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
相关资源
最近更新 更多