python - Django:当我尝试从管理仪表板添加模型的新实例时返回 __str__ 错误
问题描述
当我尝试添加任何具有Campus
作为外键的模型的新实例时,我得到了这个错误,我傻眼了。
这是 Campus 模型的代码
from django.db import models
class Campus(models.Model):
name = models.TextField(max_length = 100, default=None)
description = models.TextField(max_length = 100, default=None)
def __str__(self):
return self.name
我不确定str函数有什么问题,因为这是我对所有基本模型所做的。
谢谢你提供的所有帮助
解决方案
这不是问题所在__str__
。Campus
它是一些其他模型(或其他东西),它具有返回对象(可能带有/ )的__str__
东西,因此不会调用该对象。Campus
ForeignKey
OneToOneField
__str__
因此,如果您的模型如下所示,通常会发生这种情况:
class MyOtherModel(models.Model):
campus = models.ForeignKey(Campus, on_delete=models.CASCADE)
# …
def __str__(self):
return self.campus
因此,这里的__str__
方法返回一个Campus
对象,而不是字符串。您可以通过将Campus
对象转换为str
ing 来修复它,例如通过调用str(..)
它:
class MyOtherModel(models.Model):
campus = models.ForeignKey(Campus, on_delete=models.CASCADE)
# …
def __str__(self):
return str(self.campus)
推荐阅读
- javascript - 为什么在 useHotkeys 回调中没有更新 useState 值?
- asp.net - 带有 EF 页面的 ASP.NET MVC 在通过 return View() 发布后丢失模型数据
- javascript - 无法读取未定义 react.js 的属性“某物”
- dart - 在 Dart 中使用重复键映射实现
- java - 通过rest api返回具有静态成员的类
- xml - 我需要 xml 设计指南
- mysql - 加入id不存在的表
- r - 如何在地图ggplot2上突出显示/绘制一条纬线
- google-apps-script - 尝试通过 Google 脚本获取 GET 时身份验证失败(虽然 curl 有效)
- user-interface - 在布局中居中 QLabel