Django Import Class来自models.py

han*_*sen 3 python django django-models django-views

使用这样的文件夹结构:

library/
-django.wsgi
-manage.py
-static/
    --all my static files
-library/
    --__init__.py
    --models.py
    --settings.py
    --urls.py
    --views.py
    --wsgi.py
    --templates/
        ---where i plan to store all my templates
Run Code Online (Sandbox Code Playgroud)

如何在models.py中定义的views.py中导入类?

我试过了:

from . import models.class

from models import class

from projectname.models import class

from projectname import models.class

from project import class
Run Code Online (Sandbox Code Playgroud)

但对于所有那些我得到无效的语法错误

views.py

from django.core.context_processors import csrf
from django.shortcuts import redirect, render
from django.contrib.auth import authenticate, login
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.http import HttpResponse
from django.contrib import messages
from django.template import RequestContext, loader
from django.contrib.auth import logout

from library.models import 7DTagmap
Run Code Online (Sandbox Code Playgroud)

models.py

from __future__ import unicode_literals

from django.db import models

class 7DTagmap(models.Model):
   id = models.IntegerField(primary_key=True)
    tag_id = models.CharField(max_length=50L)
    st_tag_id = models.IntegerField()
    class Meta:
        db_table = '7d_tagmap'
Run Code Online (Sandbox Code Playgroud)

错误:

invalid syntax (views.py, line 11)
Exception Type: SyntaxError
Exception Value:    invalid syntax (views.py, line 11)
Run Code Online (Sandbox Code Playgroud)

sim*_*mon 14

使用:

from library.models import MyClass
Run Code Online (Sandbox Code Playgroud)

你应该好好去:)

(基本结构是from <app>.models import <ModelName>)

更新:

问题是(几乎!)肯定你的模型以'7'开头 - 把它改成一个字母字符,一切都会好的,我(几乎!)肯定:)

  • 它不仅仅是PEP8,它在[lexer for python]中(http://docs.python.org/2/reference/lexical_analysis.html#identifiers) (3认同)
  • 看到我的更新 - 我认为这将是数字. (2认同)