我从今年夏天开始学习Django框架。我得到了错误<;TypeError:“非类型”对象不可调用>;。我正试图缩小这个问题的范围。然而,在我删除了很多代码之后,我仍然无法从最简单的代码中理解这一点。我的代码如下所示
admin.py
from django.contrib import admin
from rest_framework.renderers import AdminRenderer
from .models import Car
@admin.site.register(Car)
class CarAdmin(admin.ModelAdmin):
list_display = ('id', 'brand', 'model')
型号.py
from django.db import models
from django.contrib import admin
class Car(models.Model):
brand = models.TextField(default='Honda')
model = models.TextField(default='EK9')
class Meta:
db_table = 'car'
def __str__(self):
return self.model
错误
LeodeMacBook-Pro:sharky leo$ python ./manage.py runserver
/Users/leo/opt/anaconda3/lib/python3.8/site-packages/environ/environ.py:628: UserWarning: /Users/leo/Documents/python_test/leo_first_python_side_project/sharky/sharky/mysite/.env doesn't exist - if you're not configuring your environment separately, create one.
warnings.warn(
/Users/leo/opt/anaconda3/lib/python3.8/site-packages/environ/environ.py:628: UserWarning: /Users/leo/Documents/python_test/leo_first_python_side_project/sharky/sharky/mysite/.env doesn't exist - if you're not configuring your environment separately, create one.
warnings.warn(
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/Users/leo/opt/anaconda3/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/Users/leo/opt/anaconda3/lib/python3.8/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/Users/leo/django/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/Users/leo/django/django/core/management/commands/runserver.py", line 114, in inner_run
autoreload.raise_last_exception()
File "/Users/leo/django/django/utils/autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File "/Users/leo/django/django/core/management/__init__.py", line 375, in execute
autoreload.check_errors(django.setup)()
File "/Users/leo/django/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/Users/leo/django/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/leo/django/django/apps/registry.py", line 122, in populate
app_config.ready()
File "/Users/leo/django/django/contrib/admin/apps.py", line 27, in ready
self.module.autodiscover()
File "/Users/leo/django/django/contrib/admin/__init__.py", line 24, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/Users/leo/django/django/utils/module_loading.py", line 47, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/Users/leo/opt/anaconda3/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/Users/leo/Documents/python_test/leo_first_python_side_project/sharky/sharky/car/admin.py", line 8, in <module>
class CarAdmin(admin.ModelAdmin):
TypeError: 'NoneType' object is not callable
环境
asgiref==3.4.1; python_version >= '3.6'
django-environ==0.4.5
django==3.2.6
pytz==2021.1
sqlparse==0.4.1; python_version >= '3.5'
我所拥有的
我在Django&;Python和几十个关于堆栈溢出的问题。 我已经意识到,最常见的解决方案是删除()。 但是,我不调用func。在任何地方 因此,我提出这个问题是为了寻找一些我不理解的错误。谢谢你的建议/建议,帮助我提高
错误来自
@admin.site.register(Car)
这是因为它返回None
,用None
包装CarAdmin
相当于执行CarAdmin = None(CarAdmin)
解决方法是使用
@admin.register(Car)
相关问题 更多 >
编程相关推荐