我的 csv 文件有一个简单的模型:
#models.py
class csvModel(models.Model):
csvFileName = models.CharField(max_length=50)
csvFile = models.FileField(upload_to='tpData/csv/')
我的脚本允许用户上传文件
然后,我使用一个 ModelChoiceField 允许用户选择一个上传的文件:
#forms.py
class convertForm(forms.Form):
fileToConvert = forms.ModelChoiceField(queryset=csvModel.objects.all(), label="Choose a CSV file to convert")
调用时, is_valid()
我可以访问 ModelChoiceField 的值(例如,如果我的 csv 文件名为 test1,我将得到 test1)
#forms.py
def clean_fileToConvert(self):
print(self.cleaned_data.get("fileToConvert")) #I get the name of the field (what I want)
但是当我尝试访问位于 下方的这个值时is_valid()
,我得到了一个数字(例如,48 代表文件,49 代表以下等)
#views.py
form2 = convertForm(request.POST)
if form2.is_valid():
print(request.POST.get("fileToConvert")) #I get 48
我什至尝试return self.cleaned_data.get("fileToConvert")
在 clean 函数中但它不起作用,我不知道如何访问选定的文件名、url 等。