【问题标题】:Django display uploading files in different fieldsDjango显示在不同字段中上传文件
【发布时间】:2021-01-04 23:04:48
【问题描述】:

我正在使用 Django 创建一个系统。一个用户有几个客户。每个客户都有不同的文件上传字段。我有上传功能,但对每个人来说都很常见。我想要的是每个客户都应该有不同的 pdf 上传和显示字段。我该怎么做?

models.py

class Pdf(models.Model):

    comp_name = models.CharField(max_length=200, default='', blank=True, null=True)
    title = models.CharField(max_length=200)
    pdf = models.FileField(upload_to='pdfs/')
    type = models.CharField(max_length=200, default='Select')
    year = models.CharField(max_length=200, default='Select')

    def __str__(self):
        return self.title

views.py

def pdf_list(request):
    pdfs = Pdf.objects.all()
    return render(request, 'pdf_list.html', {'pdfs': pdfs})


def upload_pdf(request):
    if request.method == 'POST':
        form = PdfForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('pdf_list')
    else:
        form = PdfForm()

    return render(request, 'upload_pdf.html', {'form': form})

forms.py

class PdfForm(forms.ModelForm):
    CHOICES = [
        ('img', 'Image'),
        ('txt', 'Text'),
    ]

    type = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect)
    year = forms.fields.DateField(widget=forms.widgets.DateInput(attrs={'type': 'date'}))
    comp_name = forms.ModelChoiceField(queryset=CompanyProfile.objects.all(), required=False,
                                       widget=forms.HiddenInput())

customer/model.py

class Customer(models.Model):
    name = models.CharField(max_length=20)
    surname = models.CharField(max_length=20)
    companyName = models.CharField(max_length=200, default="Choose")

【问题讨论】:

  • 我不确定您的“不同文件上传字段”是什么。文件系统中的目录?

标签: python django


【解决方案1】:

您需要将FileField 添加到您的客户模型(如果允许每个客户端多次上传,您可能需要另一个模型)并在您的视图中相应地填充它

【讨论】:

    猜你喜欢
    • 2017-12-08
    • 2020-09-22
    • 2018-01-06
    • 2019-01-02
    • 1970-01-01
    • 2017-07-20
    • 2018-03-29
    • 1970-01-01
    • 2016-07-12
    相关资源
    最近更新 更多