2015-03-02 32 views
0

我正在使用Django-Oscar開辦書店,一切都很順利。但我想添加一個應用程序(模型/視圖/管理)來顯示關於本書作者的一些信息。向django-oscar添加一個新應用

因爲我不想更改任何存在的應用程序。我剛剛做了一個名爲我的應用程序作者的STARTAPP。但Django正在向我展示一些錯誤。我不知道是不是因爲我沒有撥叉奧斯卡,或者爲什麼。在互聯網上的例子中,我還沒有發現任何類似的東西。

這是我正在嘗試爲我的新應用程序執行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) 

謝謝!!

回答

1

當您使用ForeignKey時,您必須告訴Django與model_name相關的模型。由於它來自另一個應用程序,它應該看起來像這樣。

author_name = models.ForeignKey('your_app_name.Modelname') 

的應用程序名稱是您從與筆者在模型中考慮作者的其他應用程序。

https://docs.djangoproject.com/en/1.7/ref/models/fields/#foreignkey