在django中导入模型时出错

时间:2013-11-12 11:33:49

标签: python django

我在管理/命令中导入模型时得到了这个回溯:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/vagrant/.virtualenvs/rsspainter/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/home/vagrant/.virtualenvs/rsspainter/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/vagrant/.virtualenvs/rsspainter/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/home/vagrant/.virtualenvs/rsspainter/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/home/vagrant/.virtualenvs/rsspainter/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/vagrant/rsspainter/apps/account/management/commands/create_users.py", line 5, in <module>
    from models import *
  File "/vagrant/rsspainter/apps/account/models.py", line 5, in <module>
    class SeoUser(models.Model):
  File "/home/vagrant/.virtualenvs/rsspainter/local/lib/python2.7/site-packages/django/db/models/base.py", line 93, in __new__
    kwargs = {"app_label": model_module.__name__.split('.')[-2]}
  IndexError: list index out of range

怎么了? Django管理页面效果很好。
我的模特:

class SeoUser(models.Model):
    '''
    Model of user.
    '''

    SEX = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    THEME_CHOICES = (
        ('auto', u'Автомобили'),
        ('tourism', u'Туризм'),
        ('cooking', u'Готовка'),
        ('gambling', u'Гэмблинг'),
        ('games', u'Онлайн игры'),
        ('business', u'Бизнесс'),
        ('amusement', u'Развлечения'),
        ('sports', u'Спорт и здоровье'),
        ('nyan', u'Животные'),
        ('quotes', u'Цитатники'),
        ('humor', u'Юмор'),
        ('women', u'Женские секреты'),
    )
    name = models.CharField("Name", max_length=100, blank=False)
    surname = models.CharField("Surname",max_length=150, blank=False)
    password = models.CharField("Password", max_length=16)
    country = models.CharField("Country", max_length=25)
    town = models.CharField("Town", max_length=35)
    is_real = models.BooleanField("Real user", default=False)
    sex = models.CharField("Sex", max_length=1, choices=SEX)
    age = models.IntegerField("Age", blank=False)
    thematics = models.CharField("Specification", max_length=15, choices=THEME_CHOICES, default='amusement')

    def __unicode__(self):
        return "%s-%s" % (self.name, self.thematics)
    # links to related models
    def email_count(self):
        return self.email.count()
    email_count.short_description = 'Email accounts'

    def blog_count(self):
        return self.blog.count()
    blog_count.short_description = 'Blogs'

    def twitter_count(self):
        return self.twitter.count()
    twitter_count.short_description = 'Twitter accounts'

1 个答案:

答案 0 :(得分:1)

你给了Django一个顶级模块,它希望模型成为一个包的一部分。该错误是Django查找包名称的结果,此处不存在。

不要将您的models.py文件所在的包添加到PYTHONPATH中;只添加父包所在的目录,此处为Project/apps