Howdy - J'ai écrit une application très simple pour accepter les demandes d'emploi, y compris un téléchargement de CV.Le fichier ne télécharge pas à partir du formulaire Web dans Django
En exécutant le serveur fourni pour le développement local, je peux télécharger avec succès des fichiers via le formulaire Web sur le frontal et l'interface d'administration. En l'exécutant sur le serveur distant (Apache avec mod_python), je peux télécharger des fichiers avec succès via l'interface d'administration, mais les tentatives effectuées sur l'interface Web ne génèrent aucun fichier téléchargé.
J'ai ajouté FILE_UPLOAD_PERMISSIONS = 0644
aux paramètres, vérifié les deux fichiers de paramètres et recherché des problèmes similaires décrits ailleurs. Figure Je suis soit en train d'oublier un paramètre ou besoin d'aller à ce sujet d'une manière différente. Aucune suggestion?
Pour référence, code inclus.
Le modèle:
class Application(models.Model):
job = models.ForeignKey('JobOpening')
name = models.CharField(max_length=100)
email = models.EmailField()
date_applied = models.DateField()
cover_letter = models.TextField()
resume = models.FileField(upload_to='job_applications', blank=True)
def __str__(self):
return self.name
def save(self):
if not self.date_applied:
self.date_applied = datetime.today
super(Application, self).save()
La forme:
class JobApplicationForm(ModelForm):
class Meta:
model = Application
def save(self, commit=True, fail_silently=False):
super(JobApplicationForm, self).save(commit)
La vue:
def job_application(request):
ajax = request.GET.has_key('ajax')
if request.method == 'POST':
form = JobApplicationForm(request.POST, request.FILES)
if form.is_valid():
new_application = form.save()
return HttpResponseRedirect('/about/employment/apply/sent/')
elif request.GET.has_key('job'):
job = request.GET['job']
form = JobApplicationForm({'job': job})
else:
return HttpResponseRedirect('/about/')
t = loader.get_template('employment/job_application.html')
c = Context({
'form': form,
})
return HttpResponse(t.render(c))
J'avais oublié de valider le modèle de formulaire et pensant que j'avais, n'a pas vérifié le formulaire sur le développement. Merci de m'avoir fait regarder ce qui aurait dû être évident. – bennylope
J'ai fait la même chose et cela a économisé une tonne de temps à essayer de déboguer. StackOverflow est génial! – Dan
'enctype =" multipart/form-data "' Le web. Des sommes de petites pièces ajoutées de temps en temps qui font le plus grand désordre jamais fait sur terre. J'en ai tellement marre de ça. Et je dois coder dans ce gâchis, et avec ce gâchis. ** 'Sigh' ** –