Skip to main content

View mixin and template filters for PDF creation from the HTML-template.

Detailed documentation is in the “docs” directory.

Quick start

  1. Add “weasy_pdf” to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = (
        ...
        'weasy_pdf',
    )
  2. Help functions: safety_get_attribute(), safety_parse_dict(), format_date() (see utils.py)

  3. Create data-object. When using the safety_get_attribute() function do not forget to join the related tables (prefetch_related, select_related):

    class PDFDataObject:
    
        def __init__(self, data_obj: MyModel):
            get = safety_get_attribute
            self.data_obj = data_obj
    
            self.first_name = get(data_obj, 'first_name')
            ...
  4. Prepare PDF template. Use built-in template filters: times, parse_dict:

    <!doctype html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
    
            {% load static %}
            {% load weasy_pdf %}
    
            <link rel="stylesheet" href="{% static '/styles/pdf.css' %}">
    
            <title>Title</title>
            <meta name="description" content="Description">
            <meta name="author" content="Author">
    
        </head>
        <body>
            <span>{{ data_object.first_name }}</span>
            ...
        </body>
    </html>
    
    <!-- Filters usage:
    
    {% for i in 8|times %}
        <td colspan="2"></td>
    {% endfor %}
    
    <td colspan="5">{{ data_object|parse_dict:'0__NAME' }}</td>
     -->
  5. Prepare view:

    class PDFView(WeasyPDFViewMixin):
    
        template_name = 'pdf.html'
        file_name = 'my_pdf.pdf'
    
        def get_object(self) -> Any:
            passport = get_object_or_404(Passport, pk=self.kwargs.get('pk'))
            return PDFDataObject(passport)

Example

https://user-images.githubusercontent.com/33987296/74111631-3e981f80-4ba7-11ea-874f-9509ba101c2d.png

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

btc-weasy-pdf-0.3.tar.gz (692.3 kB view details)

Uploaded Source

File details

Details for the file btc-weasy-pdf-0.3.tar.gz.

File metadata

  • Download URL: btc-weasy-pdf-0.3.tar.gz
  • Upload date:
  • Size: 692.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.7.5

File hashes

Hashes for btc-weasy-pdf-0.3.tar.gz
Algorithm Hash digest
SHA256 c154ba5087ccbde6a1cb93cfbc7179ec6250b8bb9d917332e82f0ac71dc645e8
MD5 256a7875548144e5223bf867f40cdea3
BLAKE2b-256 f04661f96c9eec5292076a9964042440c25f2f684aa86ed71a11d68ae05d996b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3 This release

1 file

0.2

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page