Salut;
Je veux utiliser weasyprint pour générer un pdf.
weasyprint génère un pdf a travers un template, ainsi avant j'ai réaliser la création sans impression pdf (sans weasyprint), en essayant de réaliser la même tache avec weayprint j'ai trouvé des difficultés ainsi je sollicite votre aide:
Mon models.py:
views.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 class TypeFact(models.Model): type = models.CharField(max_length=50, verbose_name="Type") def __str__(self): return 'TypeFact {}'.format(self.id) class Factures(models.Model): num_fact = models.AutoField(primary_key=True) type_fact = models.ForeignKey('TypeFact', on_delete=models.CASCADE, verbose_name='Type_Facture', related_name='items',) importance = models.IntegerField(verbose_name="Importance",null=True, default=None, blank=True) closed = models.BooleanField(default=False) def __str__(self): return str(self.num_fact) + " / " + str(self.type_fact)
urls.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class TypeFacturesList(ListView): model = TypeFact template_name = 'Type_list.html' class TypeFact_detail_factures(DetailView): model = TypeFact template_name = 'TypeFact_detail_factures.html' def get_context_data(self, **kwargs): context = super(TypeFact_detail_factures, self).get_context_data(**kwargs) tasks_dev = Factures.objects.filter(type_fact=self.object) # champs de liaison context['tasks_dev'] = tasks_dev return context
in a Template (html)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 path('typefact/<int:pk>/', views.TypeFact_detail_factures.as_view(), name='typefact'), path('list_typefact/', views.TypeFactList.as_view(), name='list_typefact'),
template de detail faisant apeel a factures et typefact
Le template de list est :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
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 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h2>{{ object.name }} </h2> <p> <span>type : {{ object.type }}</span></p> <h3>Liste des Factures du type : <strong>{{ object.type }} </strong></h3> <table> {% for factures in tasks_dev %} <tr> <td>{{ factures.num_fact }}</td> <td>{{ factures.importance }}</td> <td>{{ factures.closed }}</td> <td>{{ factures.type_fact }}</td> </tr> {% endfor %} </table> </body> </html>
cela marche mais en essayant d'avoir le même résultat avec weayprint je trouve des difficulté d'avoir les données a partir de des deux tables Factures et Typefatc,
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% for typefact in object_list %} <tr> <p> <td>{{ typefact.num_fact }}</td> <td>{{ typefact.id }}</td> <td>{{ typefact.type }}</td> <td>{{ factures.closed }}</td></p> <td> <a href="{% url 'typefact' pk=typefact.id %}"><button>Edition</button></a> </td> </tr> {% endfor %} </body> </html>
pour une seule table il n'y a pas de problème, ainsi je sollicite votre aide et Merci
Partager