DEV Community

Discussion on: Learn Django: Build a netflix clone

Collapse
 
fayomihorace profile image
Horace FAYOMI • Edited

Also the line:
from netflix.models import Movie is a module importation. It's more a python stuff here. We have a class called Movie inside the file models.
Remember that to be able to use a function or class that is not available in a given file, you should import that function or class from it source inside the file that should use it.
Let take a simple exemple, guess you have this architechure:

- root
     |--- file1.py
     |--- file2.py 
Enter fullscreen mode Exit fullscreen mode

And file1.py contains this:

# inside file1.py
def util_function(value):
     """Here is an utils function."""
     print(value)
     # Do usefull stuff with the value...

class UtilClass:
    """Here is a util class."""
    def __init__(self, name):
        pass
Enter fullscreen mode Exit fullscreen mode

and then you want to use the util_function of the UtilClass inside file2.py,
you can import them like this:

# inside file2.py
from .file1 import util_function, UtilClass

# we can use them
util_function(56)
utlil_class = UtilClass()
Enter fullscreen mode Exit fullscreen mode

I fyou got that, you should also know that, as we need to import a class or function or module in order to use it in another file, we should import them into django shell too. That why we need to import Movie model if we want to test it into django shell. And becasue the django shell root folder is the project root folder django_netflix_clone, which contains all our app folders modules (netflix included), and also because Movie is inside the path django_netflix_clone/netflix/models.py to import it we do from netflix/models import Movie.
Hope that help you.