1

I am trying to create a JobRequestFile form where you can upload multiple files involving a foreign key to my JobRequest model. However, when trying to save, it takes me to my JobRequest form and says these fields are required.

my form:

    class Meta:
        model = JobRequestFile
        fields = [
            'file'
        ]
        widgets = {
            'file': ClearableFileInput(attrs={'multiple': True}),
        } 

my view:

class FileUpload(FormView):
    form_class = JobRequestFileForm
    template_name = 'jobrequest/upload.html'  # Replace with your template.
    success_url = 'loggedIn'

    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        files = request.FILES.getlist('file')
        if form.is_valid():
            most_recent_jr = JobRequest.get.latest('requestDate')
            for f in files:
                JobRequestFile.object.create(jobRequest=most_recent_jr, file=f)
            return self.form_valid(form)
        else:
            return self.form_invalid(form) 

My template:

<form action='.' method='POST' enctype='multipart/form-data'>
      {% csrf_token %}
      {{ form.as_p }}
      <input type='submit' value='Save' />
</form>

The two models:

class JobRequest(models.Model):
    customer = models.ForeignKey('account.Customer', on_delete=models.CASCADE)
    partnerTypeNeeded = models.CharField('PartnerTypeNeeded', max_length=30, choices=PartnerMore.PartnerTypes.choices)
    issueDescription = models.TextField(blank=True)
    communa = models.CharField(unique=False, max_length=30, default='0')
    serviceDate = models.DateTimeField()
    requestDate = models.DateTimeField(auto_now_add=True, null=False, blank=False)
    budget = models.FileField(upload_to='budget/%Y/%m/', null=True, blank=True)
    jobCompleted = models.BooleanField(default=False)
    partner = models.ForeignKey('account.Partner', on_delete=models.SET_NULL, null=True, blank=True, related_name='assignedPartner')
    suggestedPartner = models.ForeignKey('account.Partner', on_delete=models.SET_NULL, null=True, blank=True, related_name='suggestion')

class JobRequestFile(models.Model):
    jobRequest = models.ForeignKey('JobRequest', on_delete=models.CASCADE)
    file = models.FileField(upload_to='files/%Y/%m/')

0 Answers0