向 django-oscar 添加一个新应用
Add an New app to django-oscar
我正在使用 Django-Oscar 制作书店,一切进展顺利。但我想添加一个应用程序 (model/view/admin) 来显示有关该书作者的一些信息。
因为我不想更改任何现有的应用程序。我刚刚用我的应用程序作者的新名称做了一个 STARTAPP。但是 django 向我展示了一些错误。我不知道是不是因为我没有 fork Oscar,或者为什么。在互联网上的例子中,我没有发现任何类似的东西。
这是我在尝试为我的新应用执行 SYNCDB 时遇到的错误。
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
django.setup()
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/reyesoscar/Desktop/oscar/frobshop/author/models.py", line 5, in <module>
class AuthorProfile(models.Model):
File "/Users/reyesoscar/Desktop/oscar/frobshop/author/models.py", line 6, in AuthorProfile
Author_name = models.ForeignKey(max_length=70, blank=False, null=True)
TypeError: __init__() takes at least 2 arguments (1 given)
谢谢!!
当您使用 ForeignKey 时,您必须告诉 Django author_name 与哪个模型相关。由于它来自另一个应用程序,它应该看起来像这样。
author_name = models.ForeignKey('your_app_name.Modelname')
应用名称是您从中获取作者的其他应用以及作者所在的模型。
https://docs.djangoproject.com/en/1.7/ref/models/fields/#foreignkey
我正在使用 Django-Oscar 制作书店,一切进展顺利。但我想添加一个应用程序 (model/view/admin) 来显示有关该书作者的一些信息。
因为我不想更改任何现有的应用程序。我刚刚用我的应用程序作者的新名称做了一个 STARTAPP。但是 django 向我展示了一些错误。我不知道是不是因为我没有 fork Oscar,或者为什么。在互联网上的例子中,我没有发现任何类似的东西。
这是我在尝试为我的新应用执行 SYNCDB 时遇到的错误。
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
django.setup()
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
File "/Users/reyesoscar/Desktop/oscar/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/reyesoscar/Desktop/oscar/frobshop/author/models.py", line 5, in <module>
class AuthorProfile(models.Model):
File "/Users/reyesoscar/Desktop/oscar/frobshop/author/models.py", line 6, in AuthorProfile
Author_name = models.ForeignKey(max_length=70, blank=False, null=True)
TypeError: __init__() takes at least 2 arguments (1 given)
谢谢!!
当您使用 ForeignKey 时,您必须告诉 Django author_name 与哪个模型相关。由于它来自另一个应用程序,它应该看起来像这样。
author_name = models.ForeignKey('your_app_name.Modelname')
应用名称是您从中获取作者的其他应用以及作者所在的模型。
https://docs.djangoproject.com/en/1.7/ref/models/fields/#foreignkey