【问题标题】:ImportError: cannot import name 'Message' - django-messagesImportError:无法导入名称“消息”-django-messages
【发布时间】:2019-01-22 20:15:00
【问题描述】:

我 fork https://github.com/arneb/django-messages/ 并将其放入我的 repo 中:https://github.com/mike-johnson-jr/django-messages/

当我使用这个包时,我得到了标题中的错误。完整追溯:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/home/michael/.local/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/home/michael/.local/lib/python3.6/site-packages/django/core/management/__init__.py", line 357, in execute
    django.setup()
  File "/home/michael/.local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/michael/.local/lib/python3.6/site-packages/django/apps/registry.py", line 112, in populate
    app_config.import_models()
  File "/home/michael/.local/lib/python3.6/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/michael/.local/lib/python3.6/site-packages/django_messages/models.py", line 48, in <module>
    class Message(models.Model):
  File "/home/michael/.local/lib/python3.6/site-packages/django_messages/models.py", line 87, in Message
    get_absolute_url = reverse(get_absolute_url)
  File "/home/michael/.local/lib/python3.6/site-packages/django/urls/base.py", line 90, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/home/michael/.local/lib/python3.6/site-packages/django/urls/resolvers.py", line 562, in _reverse_with_prefix
    self._populate()
  File "/home/michael/.local/lib/python3.6/site-packages/django/urls/resolvers.py", line 413, in _populate
    for url_pattern in reversed(self.url_patterns):
  File "/home/michael/.local/lib/python3.6/site-packages/django/utils/functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/michael/.local/lib/python3.6/site-packages/django/urls/resolvers.py", line 533, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/michael/.local/lib/python3.6/site-packages/django/utils/functional.py", line 37, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/michael/.local/lib/python3.6/site-packages/django/urls/resolvers.py", line 526, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/michael/projects/datafix/datafix/urls.py", line 65, in <module>
    path('messages/', include('django_messages.urls')),
  File "/home/michael/.local/lib/python3.6/site-packages/django/urls/conf.py", line 34, in include
    urlconf_module = import_module(urlconf_module)
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/michael/.local/lib/python3.6/site-packages/django_messages/urls.py", line 4, in <module>
    from django_messages.views import *
  File "/home/michael/.local/lib/python3.6/site-packages/django_messages/views.py", line 11, in <module>
    from django_messages.models import Message
ImportError: cannot import name 'Message'

这里是我的 django_messages.models 代码:

@python_2_unicode_compatible
class Message(models.Model):
    """
    A private message from user to user
    """
    subject = models.CharField(_("Subject"), max_length=140)
    body = models.TextField(_("Body"))
    sender = models.ForeignKey(AUTH_USER_MODEL, related_name='sent_messages', verbose_name=_(
        "Sender"), on_delete=models.SET_NULL)
    recipient = models.ForeignKey(AUTH_USER_MODEL, related_name='received_messages',
                                  null=True, blank=True, verbose_name=_("Recipient"), on_delete=models.SET_NULL)
    parent_msg = models.ForeignKey('self', related_name='next_messages', null=True,
                                   blank=True, verbose_name=_("Parent message"), on_delete=models.SET_NULL)
    sent_at = models.DateTimeField(_("sent at"), null=True, blank=True)
    read_at = models.DateTimeField(_("read at"), null=True, blank=True)
    replied_at = models.DateTimeField(_("replied at"), null=True, blank=True)
    sender_deleted_at = models.DateTimeField(
        _("Sender deleted at"), null=True, blank=True)
    recipient_deleted_at = models.DateTimeField(
        _("Recipient deleted at"), null=True, blank=True)

    objects = MessageManager()

有谁知道怎么回事?提前感谢您的帮助。

【问题讨论】:

  • 您可以添加您的tree 文件夹吗?我认为包 messages 不在您的 Django 路径中。

标签: python django django-messages


【解决方案1】:

错误出现在我的 django_messages.models.Message 代码中,get_absolute_url() 很不稳定。

【讨论】:

  • 就目前而言,这个答案并不能帮助其他有同样问题的人。请具体说明您为解决问题所做的工作,以便其他搜索相同问题的人知道如何解决。
猜你喜欢
  • 2018-05-29
  • 1970-01-01
  • 2015-04-30
  • 2019-08-27
  • 2016-09-07
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
相关资源
最近更新 更多