Python Django模型未打印模型详细信息
我是Django/python新手,我正在帮助团队迁移Django项目,因为安装的服务器需要迁移 旧版本 Django-1.6.5 Python-2.7 由于某些兼容性和版本不可用,低于我们迁移到的版本,并且能够在没有任何错误的情况下启动应用程序。有一些与不推荐使用的方法相关的编译错误,并且能够更正 迁移版本 Django-Django-1.6.5 Python–3.4 数据库–sqllite 枕头-枕头-3.3.0 PIP-PIP-1.5.4 除了管理模块外,其他一切看起来都很好。在主管理屏幕中,它只显示对象名称,而不是显示模块字段 位于迁移前用于显示的位置模型列表下方 位置 房间:A |橱柜:23 |抽屉:7 房间:A |橱柜:24 |抽屉:4 迁移后,它只显示位置对象名称 位置 位置对象 位置对象 我查看了model.py和定义的位置模型下方的内容 **课程位置(models.Model):Python Django模型未打印模型详细信息,python,django,model,admin,Python,Django,Model,Admin,我是Django/python新手,我正在帮助团队迁移Django项目,因为安装的服务器需要迁移 旧版本 Django-1.6.5 Python-2.7 由于某些兼容性和版本不可用,低于我们迁移到的版本,并且能够在没有任何错误的情况下启动应用程序。有一些与不推荐使用的方法相关的编译错误,并且能够更正 迁移版本 Django-Django-1.6.5 Python–3.4 数据库–sqllite 枕头-枕头-3.3.0 PIP-PIP-1.5.4 除了管理模块外,其他一切看起来都很好。在主管理屏幕
在admin.py的配置下方
*从django.contrib导入管理 从管理模型导入* 管理站点注册(位置)*
任何帮助都将非常感谢,因为我在admin.py中没有看到任何代码更改以进行任何更正 下表 *创建表“管理位置”(
)*尝试将
def\uuuu unicode\uuu():
替换为def\uu str\uu():
as
在Python2中,
def\uu unicode\uuuuuo():
用于确定对象的可读表示形式。但在Python3中,它已被替换为def\uu str\uuo():
谢谢Muhammad,我已经尝试过了,然后模板开始给出错误
例如,我在不同的模板中遇到不同的错误,如下所示。我有不同的模型,所有不同的模型开始在编辑屏幕中给出与非字符串(类型项)相关的一个或另一个错误
错误1-当我单击历史记录时
*str返回的非字符串(类型项)
请求方法:
得到
请求URL:
Django版本:
1.6.5
异常类型:
打字错误
异常值:
str返回的非字符串(类型项)
异常位置:
C:\Python34\lib\site packages\django\utils\encoding.py in force_text,第106行*
单击编辑时出现错误2
*位于/admin/mgmt/tooling/PRO102937的类型错误/
str返回的非字符串(类型项)
请求方法:
得到
请求URL:
Django版本:
1.6.5
异常类型:
打字错误
异常值:
str返回的非字符串(类型项)
异常位置:
C:\Python34\lib\site packages\django\utils\encoding.py in force_text,第106行*Update:当我尝试在model.py中使用以下代码时,它会显示名称。def str__;(self):返回self.id。但是,当我们试图编辑项目或单击显示编辑管理员屏幕TypeError(位于/admin/mgmt/equipment/S040942/u_ustr)时,它开始出现以下错误。返回的非字符串(类型项目)抱歉,忘了说。还请将最后一行
return string*更改为thisreturn self.string,因为它是一个类变量。如果仍然出现相同的错误,请尝试键入此字符串,如returnstr(self.string)再次感谢穆罕默德。在每个模型中,都有不同的数据类型、文件、列表、日期等。因此,在返回中,我应该转换每个字段吗?当前代码只返回id。因此,当我使用下面的代码时,它仍然会给出错误->def\uu str\uuuuu(self):return str(self.id)或我是否需要在admin.py中进行任何修改。我的admin.py看起来就像admin.site.register(InventoryUser)admin.site.register(Tooling)admin.site.register(device)admin.site.register(DvtSample)hi Dais,我已经尝试了return str(self.id)
,效果很好。首先,\uuu str\uuu()
必须始终返回字符串,并且不应在\uuu str\uuu()
中返回列表或Dict。作为管理员,需要一个字符串属性。所以,不用返回一个列表,你可以返回连接字符串,它会工作得很好。感谢穆罕默德,它开始工作了。非常感谢你的帮助
room = models.CharField(max_length=31,
help_text='(Required) e.g. A, B, C, D, E, F')
station = models.IntegerField(max_length=5,
blank=True,
null=True,
help_text='e.g. 1, 2, ...')
cabinet = models.IntegerField(blank=True,
null=True,
help_text='e.g. 1, 2, ...')
shelf = models.IntegerField(blank=True,
null=True,
help_text='e.g. 1, 2, ...')
drawer = models.IntegerField(blank=True,
null=True,
help_text='e.g. 1, 2, ...')
map = models.ImageField(upload_to='location_maps',
blank=True,
null=True)
class Meta:
unique_together = (('room', 'station', 'cabinet' ,'shelf', 'drawer'),)
def __unicode__(self):
string = 'Room: {}'.format(self.room)
if self.station:
string += ' | Station: {}'.format(self.station)
if self.cabinet:
string += ' | Cabinet: {}'.format(self.cabinet)
if self.shelf:
string += ' | Shelf: {}'.format(self.shelf)
if self.drawer:
string += ' | Drawer: {}'.format(self.drawer)
return string*
"id" integer NOT NULL PRIMARY KEY,
"room" varchar(31) NOT NULL,
"station" integer,
"cabinet" integer,
"shelf" integer,
"drawer" integer,
"map" varchar(100),
UNIQUE ("room", "station", "cabinet", "shelf", "drawer")