首页 > 解决方案 > FileField Upload 在 Django 中无法按预期工作

问题描述

我有一个 Django 应用程序,它应该上传通过 Filefield 输入的文件以上传到特定路径,例如我有一个名为“Uploadfiles”的文件夹,所以我只希望在文件字段中输入的文件上传到那个文件夹。

我试过了,但我的文件没有上传到那个文件夹。

所以下面是我的代码:

class Uploadedfile(models.Model):
    def file_path(self, filename):
        return f'uploaded_files/{self.server}/{self.path.replace(":", "$", 1)}/{filename}'

    files_to_upload = models.FileField(
        upload_to=file_path,
        default=None,
        validators=[validate_file]
    )
    path = models.CharField(max_length=100)
    server = MultiSelectField(choices=server_list)

    salesforceticket = models.ForeignKey(
        Salesforceticket,
        related_name='uploadedfile',
        on_delete=models.CASCADE
    )

    def __str__(self):
        return str(self.salesforceticket)

视图.py

 if request.method == 'POST':
        filled_form = SnippetForm(request.POST, request.FILES)
        filled_formset = FilesFormSet(request.POST, request.FILES)
        if filled_form.is_valid() and filled_formset.is_valid():
            salesforceticket = filled_form.save(commit=False)
   
            SalesforceNumber = filled_form.cleaned_data['salesforceNumber']
            sourcefile = filled_formset.cleaned_data['files_to_upload']

模板/文件.html

<form enctype="multipart/form-data" action="{% url 'files' %}" method="POST">
  {% csrf_token %}
  {{SnippetForm|materializecss}}
  <br>
  <table class="table form-table table-bordered table-sm">
                                                    <tbody>
                                                    
                <div class="large-4 columns">
                                                        <p style="text-align:left">I am a Python developer and I like Django.</p>
                                                    </div>
                                                                            
                                                    {% for form_data in formset %}
                                                            <tr class="item">
                                                                    <td>
                                                                            {{ form_data.files_to_upload|materializecss }}
                                                                    </td>
                                            </html>

由于是 Django 新手,我不知道我是否犯了任何错误。谁能帮我解决这个问题

标签: django

解决方案


推荐阅读