我是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
迁移后,它仅显示位置对象名称
位置对象
位置对象
**类位置(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中的任何代码更改可以进行更正
表格下方
* CREATE 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")
)*
答案 0 :(得分:0)
尝试将def __unicode__():
替换为def __str__():
,
在Python 2中,def __unicode__():
用于确定对象的可读形式。但是在Python 3中,它已被def __str__():
答案 1 :(得分:0)
感谢穆罕默德,我已经尝试过,然后模板开始出现错误。
例如,我在如下所示的不同模板中遇到了不同的错误。我有不同的模型,并且所有不同的模型都开始在编辑屏幕中给出与非字符串(项类型)有关的一个或另一个错误
错误1-当我单击历史记录
* str 返回了非字符串(类型为Item) 请求方法: 得到 要求网址: http://10.20.130.91:8000/admin/mgmt/equipment/S040942/history/ Django版本: 1.6.5 异常类型: TypeError 异常值: str 返回的非字符串(类型为Item)
异常位置: C:\ Python34 \ lib \ site-packages \ django \ utils \ encoding.py in force_text,第106 *行
错误2,当我点击“修改”
* TypeError / admin / mgmt / tooling / PRO102937 / str 返回的非字符串(类型为Item) 请求方法: 得到 要求网址: http://10.20.130.91:8000/admin/mgmt/tooling/PRO102937/ Django版本: 1.6.5 异常类型: TypeError 异常值: str 返回的非字符串(类型为Item)
异常位置: C:\ Python34 \ lib \ site-packages \ django \ utils \ encoding.py in force_text,第106行*