PyCharm 2017.3 Help

Part 6. Django-Specific Navigation

This feature is only supported in the Professional edition.

In this section:


Finally, we'll explore the Django-specific navigation.

Note that same type of navigation is available for the other frameworks: Pyramid, Flask etc.

Use the example from the "first steps" guide Step 4. Creating and Running Your First Django Project.

Jumping from a view to a template

Open the file for editing (F4). In the left gutter, next to the line template_name = "polls/index.html", you see the icon classTypeHtml.

Hovering the mouse pointer over this icon reveals the following pop-up window:

py goto template

Clicking this icon results in jumping directly to the template index.html, that resides in the folder polls under templates:

py template index

Jumping from a template to a view

In the left gutter of the template file index.html, you see the icon pythonScript. If you hover your mouse pointer over this icon, you'll see the following pop-up window:

py referenced from view

Clicking this icon leads you directly to the corresponding view.

Jumping between views and file

PyCharm allows you to easily navigate between a particular view and the corresponding url. This is how it's done:

  1. Hover your mouse pointer over the view name, while keeping Ctrl key pressed, and see the view name turning into a hyperlink:
    py jump from view to url
  2. If you click this hyperlink, you'll jump directly to the corresponding URL:
    py jump from view to url result

Vice versa, you can also jump from a URL to the corresponding view. Again, in the file, hover your mouse pointer over the view name, while keeping Ctrl key pressed, and see the view name turning into a hyperlink.

Ctrl+click the view name - and find yourself in the corresponding view.

By the way, if you click a pin icon pin in the pop-up, this pop-up becomes "pinned" - that is, turns into a tool window:

py jump from url to view pinned

Finally, open a template in the editor (F4), say, index.html and hover your mouse pointer over detail, while keeping Ctrl key pressed, and see the name turning into a hyperlink. Click this hyperlink - you immediately jump to the file

py jumping from template to url

Navigating to implementation and declaration

In a Django project, you see the same icons gutterIconOverridden and gutterIconOverriding as in a pure Python project. When you hover your mouse pointer over such an icon, you see a pop-up window, like the following:

py django navigation with gutter icons

You can also jump to a declaration or implementation of a symbol. To do that, just place the caret at the implementing/overriding symbol and press Ctrl+B or Ctrl+Alt+B (or choose Navigate | Declaration or Navigate | Implementation on the main menu):

py django goto declaration implementation

Jumping to tests

Django applications can be tested same as the pure Python ones. Same way you can create tests for the Django projects, for example, press Ctrl+Shift+T:

py django create test

Fill in the form in the Create test dialog:

py django create test dialog

You'll see the code like:

from unittest import TestCase class TestQuestion(TestCase): def test_was_published_recently(self): self.fails()

The test class naturally fails, but it's up to you to write some meaningful code.

When a test already exists, you can jump to it, using the same keyboard shortcut Ctrl+Shift+T:

py django jump to test

(Note that choosing a particular test runner can be done in the Settings/Preferences dialog, on the page Python Integrated Tools.)


This brief tutorial is over. You've mastered the following features:

  • Used the gutter icons to navigate between views and templates.
  • Navigated between views and urls.
  • Repeated how to jump to an implementation or declaration.
  • Repeated how to navigate to an existing test or create a new one.
Last modified: 28 March 2018

See Also