DEV Community

Discussion on: Learn Django: Build a netflix clone

Collapse
 
footroot profile image
El_Taller

Hello everybody, I'm a bit stack here.

Django Shell: play with our data
To quickly test our models and the manager, Django provides a very useful tool called Django Shell.


Open a terminal on VSCode (by default it will be opened ad the root of the project).
----------C:\shared\netflix_django\django_netflix_clone>
---------- I can open a terminal on VSCode but when I Run -------
Run: python man shell. A new command prompt will be shown.
---------- I've got the error:
C:\shared\netflix_django\django_netflix_clone>python man shell

python: can't open file 'C:\shared\netflix_django\django_netflix_clone\man': [Errno 2] No such file or directory

Also, I don't understand this line........
Import our Movie models: from netflix.models import Movie

any help, explain, 💩💩

Collapse
 
fayomihorace profile image
Horace FAYOMI

Hello Taller. That might happen because you're on windows instead of linux.
Let me test it on windows and give you a feedback soon.

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.