générer un pdf avec weasyprint
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:
Code:
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) |
views.py
Code:
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 |
urls.py
Code:
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'), |
in a Template (html)
template de detail faisant apeel a factures et typefact
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
| <!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> |
Le template de list est :
Code:
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> |
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,
pour une seule table il n'y a pas de problème, ainsi je sollicite votre aide et Merci