docs: def save(self, *args, **kwargs):
          """
          Before saving, get publication's PubMed metadata if publication
          is not already in database or if 'redo_query' is True.
          """
          if self.no_query:
              if not self.pk or self.pmid > 0:
                  try:
                      pmid_min = Publication.objects.all().aggregate(
                          models.Min('pmid'))['pmid__min'] - 1
                  except:
                      self.pmid = 0
                  else:
                      self.pmid = min(0, pmid_min)
  
              self.pubmed_url = ''
              self.mini_citation = '{} - {} - {}'.format(
                  self.first_author, self.year, self.journal)
  
          elif self.redo_query or not self.pk:
              if self.pmid:
                  query = self.pmid
              else:
                  query = self.pubmed_url
  
              email = ""    # FIX THIS: Use logged-in user's email
              lookup = pubmed_lookup.PubMedLookup(query, email)
              publication = pubmed_lookup.Publication(lookup)
  
              self.pmid = publication.pmid
              self.pubmed_url = publication.pubmed_url
  
              self.title = strip_tags(publication.title)
              self.authors = publication.authors
              self.first_author = publication.first_author
              self.last_author = publication.last_author
              self.journal = publication.journal
              self.year = publication.year
              self.month = publication.month
              self.day = publication.day
              self.url = publication.url
              self.citation = publication.cite()
              self.mini_citation = publication.cite_mini()
              self.abstract = strip_tags(publication.abstract)
  
          self.redo_query = False
  
          super().save(*args, **kwargs)