barciewicz
barciewicz

Reputation: 3773

How to import a model to a python file within my django project?

I have models.py and test.py files in my Django app folder.

My project is named strava, app: explorer_api

How do I import a model into 'test.py`?

I have tried:

from strava.explorer_api.models import Activity
from explorer_api.models import Activity
from .models import Activity
from models import Activity

but:

SystemError: Parent module '' not loaded, cannot perform relative import

The structure:

/
    admin.py
    apps.py
    collector.py
    models.py
    serializers.py
    test.py
    tests.py
    urls.py
    views.py
    __init__.py
migrations/
    0001_initial.py
    __init__.py
    __pycache__/
        0001_initial.cpython-35.pyc
        __init__.cpython-35.pyc
templates/
    explorer_api/
        index.html
        save.html
__pycache__/
    admin.cpython-35.pyc
    collector.cpython-35.pyc
    models.cpython-35.pyc
    serializers.cpython-35.pyc
    urls.cpython-35.pyc
    views.cpython-35.pyc
    __init__.cpython-35.pyc

Upvotes: 2

Views: 990

Answers (2)

Walucas
Walucas

Reputation: 2568

Do you have explorer_api inside your INSTALLED_APPS?

Also, leave just one import in tests.py:

from explorer_api.models import Activity

Upvotes: 0

Dap
Dap

Reputation: 2359

have a look at this Django script to access model objects without using manage.py shell if strava is your project directory then

greater than or equal to Django 1.9-1.10

import sys, os, django    
sys.path.append('full_path_to_strava_directory')
os.environ['DJANGO_SETTINGS_MODULE'] = 'strava.settings'
django.setup()

from strava.activity.models import Activity

pre Django 1.11

from strava.wsgi import application
from strava.activity models import Activity

Upvotes: 1

Related Questions