[英]Django file upload per user
我正在嘗試創建一個表單來為每個用戶上傳文件,我需要設置文件 id 或其他東西的默認名稱。
例如,如果 2 個用戶將上傳具有相同名稱“sampleCV.pdf”的簡歷,我需要將它們放在單獨的文件中,通過 ID 或其他方式,我嘗試在上傳中使用 self.name,但它不起作用, 因為此時 self 仍未被識別..
是否有設置文件上傳名稱的默認方法?
模型
class Candidate(models.Model):
name = models.CharField(max_length=200, null=True)
...
candidate_cv = models.FileField(upload_to=f'uploads/',null=True)
...
形式:
class CandidateForm(ModelForm):
class Meta:
model = Candidate
fields = '__all__'
看法:
@login_required(login_url='login')
def create_candidate(request):
form = CandidateForm()
if request.method == 'POST':
form = CandidateForm(request.POST,request.FILES)
if form.is_valid():
form.save()
context = {'form': form}
return render(request, 'dashboard/form.html', context)
表單 HTML:
{% block content %}
<center>
<hr>
<form enctype="multipart/form-data" action="" method="POST">
{% csrf_token %}
{{form.as_p}}
<input class='btn btn-sm btn-danger' type="submit" name="Submit">
</form>
<hr>
</center>
{% endblock %}
找到了一個簡單的方法來做到這一點! 可能涉及的對象:
def create_candidate(request):
form = CandidateForm()
if request.method == 'POST':
form = CandidateForm(request.POST, request.FILES)
print(request.FILES['candidate_video'].name) # previous name
request.FILES['candidate_video'].name = 'new_name.pdf' # setting a new file name
print(request.FILES['candidate_video'].name) # new name
if form.is_valid():
form.save()
context = {'form': form}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.