code: def generate_address_label(self):
          
          if self.organisation_name:
              self.address_label.append(self.organisation_name)
          if self.department_name:
              self.address_label.append(self.department_name)
          if self.po_box_number:
              self.address_label.append('PO Box ' + self.po_box_number)
  
          elements = [
                  self.sub_building_name,
                  self.building_name,
                  self.building_number,
                  self.dependent_thoroughfare,
                  self.thoroughfare,
                  self.double_dependent_locality,
                  self.dependent_locality,
          ]
  
          for element in elements:
              if element:
                  self._append_to_label(element)
  
          # pad label to length of 7 if not already
          if len(self.address_label) < 7:
              for i in range(7 - len(self.address_label)):
                  self.address_label.append('')
  
          # finally, add post town
          self.address_label[5] = self.post_town
  
          return ", ".join([f for f in self.address_label if f])
docs: Construct a list for address label.
  
          Non-empty premises elements are appended to the address label in the
          order of organisation_name, department_name, po_box_number (which
          must be prepended with 'PO Box', sub_building_name, building_name,
          building_number, then the rest of the elements except for Town and
          Postcode because we want them in their own fields. This isn't strict
          address label but we're probably loading them into a database.