nodes: 0, module; 1, function_definition; 2, function_name:sort_url; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, return_statement; 9, comment:"""
          Return the URL to sort the linked table by this column. If the
          table is already sorted by this column, the order is reversed.
  
          Since there is no canonical URL for a table the current URL (via
          the HttpRequest linked to the Table instance) is reused, and any
          unrelated parameters will be included in the output.
          """; 10, assignment; 11, call; 12, identifier:prefix; 13, boolean_operator; 14, attribute; 15, argument_list; 16, boolean_operator; 17, string:""; 18, attribute; 19, identifier:get_url; 20, keyword_argument; 21, parenthesized_expression; 22, string:"-"; 23, identifier:self; 24, identifier:table; 25, identifier:order_by; 26, binary_operator:prefix + self.name; 27, comparison_operator:self.sort_direction == "asc"; 28, identifier:prefix; 29, attribute; 30, attribute; 31, string:"asc"; 32, identifier:self; 33, identifier:name; 34, identifier:self; 35, identifier:sort_direction
code: def sort_url(self):
          """
          Return the URL to sort the linked table by this column. If the
          table is already sorted by this column, the order is reversed.
  
          Since there is no canonical URL for a table the current URL (via
          the HttpRequest linked to the Table instance) is reused, and any
          unrelated parameters will be included in the output.
          """
  
          prefix = (self.sort_direction == "asc") and "-" or ""
          return self.table.get_url(order_by=prefix + self.name)