2015-06-05 61 views
2

我试图在Django 1.7中构建电子商务网站一切正常,除非当我尝试使用结帐时,我得到以下错误。它是这样做的,因为它的作品在我的本地正常,但不是当我尝试在webfaction部署 非常感谢IntegrityError插入或更新表“orders_order”违反外键约束“

Environment: 


Request Method: GET 
Request URL: http://myshoppingapp.com/checkout/ 

Django Version: 1.7.1 
Python Version: 2.7.9 
Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'accounts', 
'carts', 
'marketing', 
'orders', 
'products', 
'localflavor', 
'stripe') 
Installed Middleware: 
('django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware', 
'marketing.middleware.DisplayMarketing') 


Traceback: 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/core/handlers/base.py" in get_response 
    111.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/contrib/auth/decorators.py" in _wrapped_view 
    22.     return view_func(request, *args, **kwargs) 
File "/home/jamessmith/webapps/myshoppingapp/src/orders/views.py" in checkout 
    55.  new_order.save() 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/db/models/base.py" in save 
    591.      force_update=force_update, update_fields=update_fields) 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/db/models/base.py" in save_base 
    619.    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/db/transaction.py" in __exit__ 
    339.       connection.commit() 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/db/backends/__init__.py" in commit 
    176.   self._commit() 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/db/backends/__init__.py" in _commit 
    145.     return self.connection.commit() 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/db/utils.py" in __exit__ 
    94.     six.reraise(dj_exc_type, dj_exc_value, traceback) 
File "/home/jamessmith/webapps/myshoppingapp/lib/python2.7/Django-1.7.1-py2.7.egg/django/db/backends/__init__.py" in _commit 
    145.     return self.connection.commit() 

Exception Type: IntegrityError at /checkout/ 
Exception Value: insert or update on table "orders_order" violates foreign key constraint "billing_address_id_41625ebca5013523_fk_accounts_useraddress_id" 
DETAIL: Key (billing_address_id)=(1) is not present in table "accounts_useraddress". 

回答

3

重要细节是在这一行:

DETAIL: Key (billing_address_id)=(1) is not present in table "accounts_useraddress". 

的问题是,您正试图将订单与帐单地址相关联尚未存在于数据库中。

在您的代码中,您需要确保帐单地址已保存到数据库,然后再尝试使用外键保存与其相关的对象。

+0

对于如何做到这一点,你有什么建议吗?我想我觉得很愚蠢:-( – jimmyjump

+1

你能从你的views.py文件中发布你的代码片段,你在做new_order.save()吗? – ChidG

相关问题