Problème avec l'upload d'un fichier avec filefield
Bonjour ,
j'essaie de faire uploader un fichier dans django, voici mon code :
models.py:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Event (models.Model):
date_debut_event = models.DateField()
date_fin_event = models.DateField()
nom_event = models.CharField(max_length=40)
lieu_event = models.CharField(max_length=30)
type_event = models.CharField(max_length=20)
inscription_event = models.ManyToManyField(User,through='InscriptionEvent',related_name='user_inscription')
def __str__(self):
return self.nom_event
status_list = [
('En attente','En attente'),
('Validé','Validé')]
class InscriptionEvent (models.Model):
user_inscrit = models.ForeignKey(User,related_name='user_inscrit', on_delete=models.CASCADE)
event_inscription = models.ForeignKey(Event,related_name='event_inscrit', on_delete=models.CASCADE)
date_inscription = models.DateField()
status_inscription = models.CharField(max_length=10,choices = status_list)
file = models.FileField(blank = True) |
views.py:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| def event_page(request,id):
detail_event = Event.objects.get(id=id)
detail_inscription = InscriptionEvent.objects.get(user_inscrit=request.user,event_inscription=detail_event)
print(detail_inscription.file)
if InscriptionEvent.objects.filter(user_inscrit=request.user,event_inscription=Event.objects.get(id=id)).exists():
if request.method == 'POST':
form = send_confirmation_amount(request.POST, request.FILES)
if form.is_valid():
detail_inscription.file = form.cleaned_data['file']
detail_inscription.save()
return HttpResponseRedirect(reverse('eventPage' ,kwargs={'id':id}))
else:
form = send_confirmation_amount()
return render(request,'event_page.html',{'data_event':detail_event,'form':form})
def inscription_congres (request,id):
if not InscriptionEvent.objects.filter(user_inscrit=request.user,event_inscription=Event.objects.get(id=id)).exists():
inscription = InscriptionEvent()
inscription.user_inscrit = request.user
inscription.event_inscription = Event.objects.get(id=id)
inscription.status_inscription = 'En attente'
inscription.date_inscription = today
inscription.save()
messages.success(request, 'demande envoyé')
else:
messages.warning(request, 'demande deja envoyé')
return HttpResponseRedirect (reverse('eventPage',kwargs={'id':id})) |
url.py:
Code:
1 2 3 4 5 6 7 8 9
| urlpatterns = [
path('',views.home,name='home'),
path('profilInfo',views.profil_complete,name='profilecomplete'),
path('DashProfile',views.dash_user,name='dashuser'),
path('Event/<int:id>',views.event_page,name='eventPage'),
path('inscription_congres/<int:id>',views.inscription_congres,name='inscriptionCongres'),
] |
forms.py:
Code:
1 2 3 4 5
| class send_confirmation_amount(forms.ModelForm):
class Meta:
model = InscriptionEvent
fields = ('file',) |
et le template :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <p>{{ data_event.id }}</p>
<p>{{ data_event.nom_event }}</p>
<p>{{ data_event.date_debut_event }}</p>
<p>{{ data_event.date_fin_event }}</p>
<p>{{ data_event.lieu_event }}</p>
<p>{{ data_event.type_event }}</p>
<form method="POST" >
{{ form.as_p }}
{% csrf_token %}
<button type="submit" >Envoyer le recu </button>
</form>
<a href="{% url 'inscriptionCongres' data_event.id %}">Inscrivez vous </a>
{% for message in messages %}
<strong>{{ message }}</strong>
{% endfor %} |
le problème est avec la vue event_page, quand je click sur 'envoyer le recu sur la page web' la page se re fraiche mais rien se passe , et dans l'admin rien ne s'ajoute , je peux même pas debugger , je ne comprend pas pourquoi, j'ai beau essayer de trouver le problème pendant 2jour mais rien,
svp pouvez vous m'aider a voir plus claire,
Merci d'avance