Custom 'save' method, automate creating pdf file from entry.

 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
import os.path
from reportlab.pdfgen import canvas

from django.db import models
from django.conf import settings


class Entry(models.Model):
    doc = models.TextField()
    file = models.FilePathField(
            path=os.path.join(settings.MEDIA_URL, '/files'), match='*\.pdf',)
    
    def save(self, *args, **kwargs):
        """Writing entry content to new pdf file, saving it in file system
        and make record to database."""
        
        counter = 0
        
        def make_path(counter):
            """Check existing and make new file."""
            
            path = os.path.join(
            settings.STATICFILES_DIRS[1], 'files', 'f' + str(counter) + '.pdf')
            
            if os.path.isfile(path):
                counter += 1
                return make_path(counter)
            return path
            
        curr_path = make_path(counter)
        
        pdf_file = canvas.Canvas(curr_path)
        pdf_file.drawString(100, 750, self.doc)
        pdf_file.save()
        self.file = curr_path
        super(Entry, self).save(*args, **kwargs)

More like this

  1. Table Creation Using ORM Standalone by EliAndrewC 5 years, 3 months ago
  2. RML2PDF with Django by meitham 3 years, 1 month ago
  3. Create PDF files using rml and django templates by mporrato 5 years, 11 months ago
  4. Download images as png or pdf by gkelly 6 years, 1 month ago
  5. Automate unique slugs by taojian 5 years, 5 months ago

Comments

satodenn (on October 3, 2011):

[HTML_REMOVED][HTML_REMOVED]ugg boots sale[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED] ugg boots on sale[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]ugg sale[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]ugg on sale[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]ugg[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]mens ugg boots outlet[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]ugg sale[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]buy ugg highkoo boots[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]mens ugg boots outlet[HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED]Kid Sheepskin UGG Boot [HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED]

[HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] Other About blog [HTML_REMOVED][HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] About biguggbootssale.com blog [HTML_REMOVED]

#

satodenn (on December 1, 2011):

[HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] Other About blog [HTML_REMOVED][HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] About blog [HTML_REMOVED]

#

satodenn (on December 1, 2011):

[HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] Other About blog [HTML_REMOVED][HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] About blog [HTML_REMOVED]

#

satodenn (on December 21, 2011):

[HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] Other About blog [HTML_REMOVED][HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED][HTML_REMOVED][HTML_REMOVED] About blog [HTML_REMOVED]

#

(Forgotten your password?)