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 41 42 43 44 45 46 47 48 49 50 51 52
| class Depart_pj(models.Model):
justificatif = models.FileField(null=True, upload_to=generate_filename, blank=True)
def __unicode__(self):
return unicode(self.justificatif)
class Depart_m2m(models.Model):
num_enreg = models.PositiveIntegerField(blank=True)
date_emission = models.DateField(blank=True)
types = models.CharField(max_length=5, blank=True)
destinataire = models.CharField(max_length=50, blank=True)
objet = models.CharField(max_length=100, blank=True)
observation = models.CharField(max_length=100, blank=True)
pj = models.ManyToManyField(Depart_pj,null=True, blank=True)
def __unicode__(self):
return unicode(self.num_enreg)
forms.py
class Departm2mForm(forms.ModelForm):
pj = forms.FileField(required=False,widget = forms.ClearableFileInput(attrs={'multiple':True}))
class Meta:
model = Depart_m2m
fields = '__all__'
widgets = {
'date_emission': DateInput(attrs={'class': 'datepicker', 'placeholder': 'JJ/MM/AAAA'}),
}
def __init__(self, *args, **kwargs):
super(Departm2mForm, self).__init__(*args, **kwargs)
for field_name, field in self.fields.items():
field.widget.attrs['class'] = 'form-control'
views.py
def depart(request):
year = datetime.now().year
if request.method == 'POST':
depart_form = Departm2mForm(request.POST, request.FILES)
if depart_form.is_valid():
doc1 = depart_form.save(commit=False)
doc1.save()
files = request.FILES.getlist('pj')
for f in files:
doc1.pj.create(tjustificatif=f)
return HttpResponseRedirect('liste_depart_m2m')
else:
depart_form = tDepartm2mForm()
return render(request, 'depart_m2m.html', {'depart_form': depart_form}) |
Partager