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 行*