作者aiweisen (三重刘德华)
看板Python
标题[问题] django 无法修改model值
时间Thu May 16 20:41:45 2013
各位先进你们好 我是初碰这一块的新手
请问一下 为什麽我无法在下列被标记绿色的动作 修改我的filelength?
length[i]内容是档案的长度 假设阵列存放的数字是100 200 300 400 ...
我做了 attach[0].filelength = int(length[i]) 这行之後
filelength仍然存的是预设值? 请问我是遇到什麽问题?
另外为什麽 在一对多的情况下
message model中的 totallength 不用设预设值 而
message_attach中的 filelength 需要设?
会这麽问因为 如果message_attach不设预设值 会跑出
"message_attach.filelength may not be NULL"的错物讯息
--
view.py
try:
mms = message.objects.get(token=token)
attach =mms.message_attach_set.filter(index__exact=int(index[i]),
seq__exact=int(seq[i]))
try:
tmpName = generateToken(FILENAME_LENGTH) +os.path.splitext(
attach[0].realName)[-1]
attach[0].file.save(tmpName, file)
attach[0].filelength = int(length[i])
attach[0].save()
-----
model.py
※message一些不相关的栏位没有贴上来
class message(models.Model):
totallength = models.PositiveIntegerField()
sender = models.ForeignKey(User, related_name='out_mms')
receivers = models.ManyToManyField(User, related_name='in_mms')
def __unicode__(self):
return '(%d)->%s' % (self.id, self.subject)
admin.site.register(message)
class message_attach(models.Model):
index = models.PositiveSmallIntegerField()
seq = models.PositiveSmallIntegerField()
message = models.ForeignKey('message')
file = models.FileField(upload_to='%Y/%m/%d', null=False)
realName = models.CharField(max_length=255)
filelength = models.PositiveIntegerField(default=0)
-----
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.150.27
1F:→ uranusjr:先看一下 length[i] 的值是什麽 05/16 21:27
单纯用字串显示(%s) 会得到这样子的回传 [u'2000000', u'2000000']
2F:→ aiweisen:难道是unicode的问题造成的吗? 05/16 22:49
3F:→ uranusjr:你是 print length 还是 print length[i] 啊? 05/17 07:54
print length 是 [u'2000000', u'2000000']
如果是print length[i] 是[u'2000000']
再如果有转型态 print int(length[i]) 是 2000000
※ 编辑: aiweisen 来自: 140.138.150.27 (05/17 10:05)