[問題] django 無法修改model值
各位先進你們好 我是初碰這一塊的新手
請問一下 為什麼我無法在下列被標記綠色的動作 修改我的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
→
05/16 21:27, , 1F
05/16 21:27, 1F
單純用字串顯示(%s) 會得到這樣子的回傳 [u'2000000', u'2000000']
→
05/16 22:49, , 2F
05/16 22:49, 2F
→
05/17 07:54, , 3F
05/17 07:54, 3F
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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章