【问题标题】:Error in importing a module in rest_framework, while creating rest API using Django framework在使用 Django 框架创建 REST API 时,在 rest_framework 中导入模块时出错
【发布时间】:2021-05-20 23:55:22
【问题描述】:

我使用 Djanjo 框架创建了一个 Web 应用程序,然后当我尝试创建一个 REST API 时,在配置了所有相关文件(例如 models.py、admin.py、serializers.py、views.py 和 settings)之后.py。从 rest_framework 导入模型时显示错误。回溯如下:

*Traceback (most recent call last):
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\threading.py", line 917, in _bootstrap_inner
    self.run()
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\utils\autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run
    self.check(display_num_errors=True)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\management\base.py", line 390, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\management\base.py", line 377, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
    return check_method()
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\urls\resolvers.py", line 399, in check
    for pattern in self.url_patterns:
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\utils\functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\urls\resolvers.py", line 584, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\utils\functional.py", line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\django\urls\resolvers.py", line 577, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\myproject1\myproject1\urls.py", line 19, in <module>
    from webapp import views
  File "C:\myproject1\webapp\views.py", line 9, in <module>
    from . serializers import employeesSerializer
  File "C:\myproject1\webapp\serializers.py", line 2, in <module>
    from rest_framework import employees
ImportError: cannot import name 'employees' from 'rest_framework' (C:\Users\dmandal\AppData\Local\Continuum\anaconda3\lib\site-packages\rest_framework\__init__.py)* 

serializer.py如下:

from rest_framework import serializers
from rest_framework import employees

class employeesSerializer(serializers.ModelSerializer):
    
    class Meta:
        model = employees
#        fields = ('firstname','lastname')
        fields = '__all__'

【问题讨论】:

  • 你为什么要从 rest_framework 导入员工
  • 我创建了一个员工类 class employees(models.Model): firstname = models.CharField(max_length=10) lastname = models.CharField(max_length=10) emp_id = models.IntegerField() def __str__ (self): return self.firstname

标签: python django rest django-models django-rest-framework


【解决方案1】:

这是名称冲突。请将您的应用名称更改为 rest_framework 以外的其他名称。

【讨论】:

    猜你喜欢
    • 2019-09-24
    • 1970-01-01
    • 2020-05-15
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多