我正在制作一个电子邮件传递WebApp,我有一个带有Email
的 uploadcsvfile
类,用于从其中上传 .csv
联系人文件用户计算机到位置CONTACT_DIR
的服务器上,我无法确定是如何在我的contacts_some_char.csv
中获取保存的views.py
的名称,所以获得它的名称的目的是我可以解析电子邮件列表并将电子邮件发送给他们。
我的model.py
如下:
class Email(models.Model):
fromemail = models.EmailField(blank = False, max_length = 254)
uploadcsvfile = models.FileField(upload_to = 'Contacts', blank = False)
subject = models.CharField(blank=False,max_length = 254)
bodyHeading = models.CharField(blank = False,max_length = 254)
bodytext = models.TextField(blank = False)
name = models.CharField(blank = False,max_length = 254)
这是我的views.py
:
def index(request):
if request.method == 'POST':
email_form = EmailForm(request.POST, request.FILES)
if email_form.is_valid():
email_form.save(commit = True)
print(Email.uploadcsvfile)
contacts = Contacts()
#path = settings.CONTACT_DIR
f = open(settings.CONTACT_DIR+"/"+str(uploaded_file_name))
csv_f = csv.reader(f)
Emails = []
Names= []
L_Names = []
for x in csv_f:
Emails.append(x[0])
Names.append(x[1])
L_Names.append(x[2])
f.close()
contacts.ListOfEmails = json.dumps(Emails)
contacts.ListOfFirstNames = json.dumps(Names)
contacts.ListOfLastNames = json.dumps(L_Names)
contacts.save()
这里是forms.py
:
from django import forms
from dcsvreader.models import Email
class EmailForm(forms.ModelForm):
class Meta():
model = Email
fields = "__all__"
又名(我)如何在uploaded_file_name
中得到 views.py
,因此我正在阅读各种QnA,因此这与 FileDescriptor
,但还找不到 print(Email.uploadcsvfile)
给出的精确度如何, <django.db.models.fields.files.FileDescriptor object at 0x03F7DF90>
作为输出。
答案 0 :(得分:1)
request.FILES
是一个类似于字典的对象,包含所有上载的文件,而uploadcsvfile
是您在其中发出POST请求的 key 。因此,request.FILES['uploadcsvfile']
将特定文件保存为 InMemoryUploadedFile
,并且它具有一个变量.name
,该文件包含文件名
尝试一下,
file_name = request.FILES['uploadcsvfile'].name
答案 1 :(得分:0)
我本人对django还是陌生的,但看起来像这里:
print(Email.uploadcsvfile)
您正在尝试打印类属性而不是实例的属性。 您尝试过以下吗?
print(email_form.uploadcsvfile.name)