if block_name == 'from':\r
return parse_block_from(ast)\r
\r
+ if block_name == 'import':\r
+ return parse_block_import(ast)\r
+\r
if block_name == 'include':\r
return parse_block_include(ast)\r
\r
else:\r
del parameters[-2:]\r
\r
- if len(parameters) > 2:\r
- for parameter in parameters[2:]:\r
- if 'alias' in parameter['value']:\r
- names.append(\r
- (\r
- parameter['value']['variable'],\r
- parameter['value']['alias']\r
- )\r
+ for parameter in parameters[2:]:\r
+ if 'alias' in parameter['value']:\r
+ names.append(\r
+ (\r
+ parameter['value']['variable'],\r
+ parameter['value']['alias']\r
)\r
- else:\r
- names.append(parameter['value']['variable'])\r
+ )\r
+ else:\r
+ names.append(parameter['value']['variable'])\r
\r
from_import = nodes.FromImport(\r
template,\r
lineno=lineno_from_parseinfo(ast['parseinfo'])\r
)\r
\r
+def parse_block_import(ast):\r
+ block_parameters = ast['block']['parameters']\r
+\r
+ template = parse_variable(block_parameters[0]['value'])\r
+ target = None\r
+ with_context = _parse_import_context(block_parameters) or False\r
+\r
+ if len(block_parameters) > 2 and block_parameters[1]['value']['variable'] == 'as':\r
+ target = parse_variable(block_parameters[2]['value']).name\r
+\r
+ return nodes.Import(\r
+ template,\r
+ target,\r
+ with_context,\r
+ lineno=lineno_from_parseinfo(ast['parseinfo'])\r
+ )\r
+\r
def parse_block_include(ast):\r
block_parameters = ast['block']['parameters']\r
\r
{{ not (foo and bar) }}\r
{{ foo not in bar }}\r
{% from 'forms.html' import input with context %}\r
-{% include 'header.html' without context %}
\ No newline at end of file
+{% include 'header.html' without context %}\r
+{% import 'forms.html' as forms %}
\ No newline at end of file