Django 模型不打印模型详细信息
Django Model is not printing the Model Details
我是 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和下面定义的位置模型
**class 位置(models.Model):
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*
下面的配置为admin.py
*来自django.contrib 导入管理员
来自 mgmt.models 导入 *
admin.site.register(位置)*
任何帮助将不胜感激,因为我在 admin.py 中没有看到任何代码更改以进行任何更正
下面Table
*创建 TABLE "mgmt_location" (
"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")
)*
尝试将 def __unicode__():
替换为 def __str__():
as
in Python 2,def __unicode__():
已用于确定 Python 中 object.But 的人类可读表示 3,它已被替换为 def __str__():
谢谢穆罕默德,我试过了,然后模板开始出错。
例如,我在不同的模板中遇到不同的错误,如下所示。我有不同的模型,所有不同的模型都开始在编辑屏幕中给出与非字符串(类型项目)相关的一个或另一个错误
错误 1 - 当我点击历史记录时
*str 返回非字符串(类型 Item)
请求方法:
得到
请求 URL:
http://10.20.130.91:8000/admin/mgmt/equipment/S040942/history/
姜戈版本:
1.6.5
异常类型:
类型错误
异常值:
str 返回非字符串(类型 Item)
异常位置:
C:\Python34\lib\site-packages\django\utils\encoding.py force_text,第 106 行*
错误2,当我点击编辑
*/admin/mgmt/tooling/PRO102937/ 处出现类型错误
str 返回非字符串(类型 Item)
请求方式:
得到
请求 URL:
http://10.20.130.91:8000/admin/mgmt/tooling/PRO102937/
姜戈版本:
1.6.5
异常类型:
类型错误
异常值:
str 返回非字符串(类型 Item)
异常位置:
C:\Python34\lib\site-packages\django\utils\encoding.py force_text,第 106 行*
我是 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和下面定义的位置模型
**class 位置(models.Model):
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*
下面的配置为admin.py
*来自django.contrib 导入管理员
来自 mgmt.models 导入 *
admin.site.register(位置)*
任何帮助将不胜感激,因为我在 admin.py 中没有看到任何代码更改以进行任何更正
下面Table
*创建 TABLE "mgmt_location" (
"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")
)*
尝试将 def __unicode__():
替换为 def __str__():
as
in Python 2,def __unicode__():
已用于确定 Python 中 object.But 的人类可读表示 3,它已被替换为 def __str__():
谢谢穆罕默德,我试过了,然后模板开始出错。
例如,我在不同的模板中遇到不同的错误,如下所示。我有不同的模型,所有不同的模型都开始在编辑屏幕中给出与非字符串(类型项目)相关的一个或另一个错误
错误 1 - 当我点击历史记录时
*str 返回非字符串(类型 Item) 请求方法: 得到 请求 URL: http://10.20.130.91:8000/admin/mgmt/equipment/S040942/history/ 姜戈版本: 1.6.5 异常类型: 类型错误 异常值: str 返回非字符串(类型 Item)
异常位置: C:\Python34\lib\site-packages\django\utils\encoding.py force_text,第 106 行*
错误2,当我点击编辑
*/admin/mgmt/tooling/PRO102937/ 处出现类型错误 str 返回非字符串(类型 Item) 请求方式: 得到 请求 URL: http://10.20.130.91:8000/admin/mgmt/tooling/PRO102937/ 姜戈版本: 1.6.5 异常类型: 类型错误 异常值: str 返回非字符串(类型 Item)
异常位置: C:\Python34\lib\site-packages\django\utils\encoding.py force_text,第 106 行*