Python 使用日期和用户django保存文件
我正在制作一个上传页面,我想要一个模型,它将保存一个指向上传文件、日期和用户的链接。 我是django的新手,对表单和模型之间的关系以及如何传递数据感到困惑 我想制作一个1字段表单,它将是FileField和catch request.user和time on the go,然后将它们保存在数据库中 这是我目前的代码: forms.pyPython 使用日期和用户django保存文件,python,django,forms,Python,Django,Forms,我正在制作一个上传页面,我想要一个模型,它将保存一个指向上传文件、日期和用户的链接。 我是django的新手,对表单和模型之间的关系以及如何传递数据感到困惑 我想制作一个1字段表单,它将是FileField和catch request.user和time on the go,然后将它们保存在数据库中 这是我目前的代码: forms.py class UploadForm(forms.Form): def __init__(self, *args, **kwargs):
class UploadForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
docfile=forms.FileField(label="Select a file")
@login_required
def upload(request):
if request.method == "POST":
form=UploadForm(request.POST, request.FILES, user=request.user)
if form.is_valid():
#this is what i used to save the only the file
#now i want to have file,user and upload date in db
new_doc = Document(docfile=request.FILES['docfile'])
new_doc.save()
print(request.user)
**???**-what do i insert here to pass user and time
to the model and save it **???**
return HttpResponseRedirect(reverse('after_upload'))
else:
form=UploadForm()
return render(request, 'upload.html', {'form':form})
class Document(models.Model):
upload_user=**???**
upload_time=**???**
docfile=models.FileField(upload_to='documents/%Y/%m')
from django.contrib.auth.models import User
class Document(models.Model):
upload_user = models.ForeignKey(User, related_name='documents')
upload_time = models.DateTimeField(auto_now_add=True)
docfile =models.FileField(upload_to='documents/%Y/%m')
class UploadForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
class Meta:
model = Document
fields = ('docfile',)
if form.is_valid():
doc = form.save(commit=False)
doc.upload_user = request.user
doc.save()
return HttpResponseRedirect(reverse('after_upload'))
视图.py
class UploadForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
docfile=forms.FileField(label="Select a file")
@login_required
def upload(request):
if request.method == "POST":
form=UploadForm(request.POST, request.FILES, user=request.user)
if form.is_valid():
#this is what i used to save the only the file
#now i want to have file,user and upload date in db
new_doc = Document(docfile=request.FILES['docfile'])
new_doc.save()
print(request.user)
**???**-what do i insert here to pass user and time
to the model and save it **???**
return HttpResponseRedirect(reverse('after_upload'))
else:
form=UploadForm()
return render(request, 'upload.html', {'form':form})
class Document(models.Model):
upload_user=**???**
upload_time=**???**
docfile=models.FileField(upload_to='documents/%Y/%m')
from django.contrib.auth.models import User
class Document(models.Model):
upload_user = models.ForeignKey(User, related_name='documents')
upload_time = models.DateTimeField(auto_now_add=True)
docfile =models.FileField(upload_to='documents/%Y/%m')
class UploadForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
class Meta:
model = Document
fields = ('docfile',)
if form.is_valid():
doc = form.save(commit=False)
doc.upload_user = request.user
doc.save()
return HttpResponseRedirect(reverse('after_upload'))
型号.py
class UploadForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
docfile=forms.FileField(label="Select a file")
@login_required
def upload(request):
if request.method == "POST":
form=UploadForm(request.POST, request.FILES, user=request.user)
if form.is_valid():
#this is what i used to save the only the file
#now i want to have file,user and upload date in db
new_doc = Document(docfile=request.FILES['docfile'])
new_doc.save()
print(request.user)
**???**-what do i insert here to pass user and time
to the model and save it **???**
return HttpResponseRedirect(reverse('after_upload'))
else:
form=UploadForm()
return render(request, 'upload.html', {'form':form})
class Document(models.Model):
upload_user=**???**
upload_time=**???**
docfile=models.FileField(upload_to='documents/%Y/%m')
from django.contrib.auth.models import User
class Document(models.Model):
upload_user = models.ForeignKey(User, related_name='documents')
upload_time = models.DateTimeField(auto_now_add=True)
docfile =models.FileField(upload_to='documents/%Y/%m')
class UploadForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
class Meta:
model = Document
fields = ('docfile',)
if form.is_valid():
doc = form.save(commit=False)
doc.upload_user = request.user
doc.save()
return HttpResponseRedirect(reverse('after_upload'))
你可能需要这样做 型号.py
class UploadForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
docfile=forms.FileField(label="Select a file")
@login_required
def upload(request):
if request.method == "POST":
form=UploadForm(request.POST, request.FILES, user=request.user)
if form.is_valid():
#this is what i used to save the only the file
#now i want to have file,user and upload date in db
new_doc = Document(docfile=request.FILES['docfile'])
new_doc.save()
print(request.user)
**???**-what do i insert here to pass user and time
to the model and save it **???**
return HttpResponseRedirect(reverse('after_upload'))
else:
form=UploadForm()
return render(request, 'upload.html', {'form':form})
class Document(models.Model):
upload_user=**???**
upload_time=**???**
docfile=models.FileField(upload_to='documents/%Y/%m')
from django.contrib.auth.models import User
class Document(models.Model):
upload_user = models.ForeignKey(User, related_name='documents')
upload_time = models.DateTimeField(auto_now_add=True)
docfile =models.FileField(upload_to='documents/%Y/%m')
class UploadForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
class Meta:
model = Document
fields = ('docfile',)
if form.is_valid():
doc = form.save(commit=False)
doc.upload_user = request.user
doc.save()
return HttpResponseRedirect(reverse('after_upload'))
forms.py
class UploadForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
docfile=forms.FileField(label="Select a file")
@login_required
def upload(request):
if request.method == "POST":
form=UploadForm(request.POST, request.FILES, user=request.user)
if form.is_valid():
#this is what i used to save the only the file
#now i want to have file,user and upload date in db
new_doc = Document(docfile=request.FILES['docfile'])
new_doc.save()
print(request.user)
**???**-what do i insert here to pass user and time
to the model and save it **???**
return HttpResponseRedirect(reverse('after_upload'))
else:
form=UploadForm()
return render(request, 'upload.html', {'form':form})
class Document(models.Model):
upload_user=**???**
upload_time=**???**
docfile=models.FileField(upload_to='documents/%Y/%m')
from django.contrib.auth.models import User
class Document(models.Model):
upload_user = models.ForeignKey(User, related_name='documents')
upload_time = models.DateTimeField(auto_now_add=True)
docfile =models.FileField(upload_to='documents/%Y/%m')
class UploadForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
class Meta:
model = Document
fields = ('docfile',)
if form.is_valid():
doc = form.save(commit=False)
doc.upload_user = request.user
doc.save()
return HttpResponseRedirect(reverse('after_upload'))
视图.py
class UploadForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
docfile=forms.FileField(label="Select a file")
@login_required
def upload(request):
if request.method == "POST":
form=UploadForm(request.POST, request.FILES, user=request.user)
if form.is_valid():
#this is what i used to save the only the file
#now i want to have file,user and upload date in db
new_doc = Document(docfile=request.FILES['docfile'])
new_doc.save()
print(request.user)
**???**-what do i insert here to pass user and time
to the model and save it **???**
return HttpResponseRedirect(reverse('after_upload'))
else:
form=UploadForm()
return render(request, 'upload.html', {'form':form})
class Document(models.Model):
upload_user=**???**
upload_time=**???**
docfile=models.FileField(upload_to='documents/%Y/%m')
from django.contrib.auth.models import User
class Document(models.Model):
upload_user = models.ForeignKey(User, related_name='documents')
upload_time = models.DateTimeField(auto_now_add=True)
docfile =models.FileField(upload_to='documents/%Y/%m')
class UploadForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user',None)
super(UploadForm, self).__init__(*args, **kwargs)
class Meta:
model = Document
fields = ('docfile',)
if form.is_valid():
doc = form.save(commit=False)
doc.upload_user = request.user
doc.save()
return HttpResponseRedirect(reverse('after_upload'))