我正在使用django 1.4並使用django模型的filefield通過modelform上傳一些文檔。我有以下問題:django模型filefield有數據庫錯誤
當我提交表單,它說:
Data truncated for column 'file_name' at row 1
以下是我對這個模型:
class App(models.Model):
user_name=models.CharField(max_length=50)
email=models.CharField(max_length=50)
status=models.CharField(max_length=10,choices=APPLICATIONSTATUSCHOICE)
archived=models.BooleanField()
mark_spam=models.BooleanField()
date=models.DateField()
file_name=models.FileField(upload_to=PATH+"/")
def getPath(self):
return PATH
def __unicode__(self):
return self.user_name
def send_email(self):
pass
下面是標準格式的代碼:
class AppForm(ModelForm):
class Meta:
model=App
exclude=('status','archived','mark_spam')
email=forms.EmailField()
def save(self,commit=True):
app=super(AppForm,self).save(commit=False)
app.status='sent'
app.save()
此外,它存儲文件的原始名稱,我可以用一些獨特的名稱,因爲我是從PHP黑色一輪和PHP我通常保存它像<mysql auto id>.<filextension>
,所以我怎麼能在Django中做到這一點。我的第一印象是,所有這些將通過django自動完成,而它只是用自己選擇的名稱保存它,但我需要將名稱保存到數據庫中,所以我想根據自己的選擇命名。如何做到這一點,以及我的代碼中出現上述錯誤的問題是什麼?
在我的數據庫是爲varchar(50),也是我剛纔看到它insesrting完整路徑,我的文件不只是名字,這似乎不正確的行爲,是嗎?也根據app_id上傳文件,那麼我是否需要先單獨插入記錄?得到它的自動遞增的id或django有東西嗎? – Hafiz
你使用了什麼樣的數據庫,試着指定一個'max_length = 200'並重新創建表格或者使用南方語言進行遷移。文件路徑通常與'settings.py'中指定的'MEDIA_PATH'相關 –