我正在尝试在Django 1.7中构建一个电子商务网站一切正常,除非我尝试使用结帐时,我收到以下错误。我不确定它是这样做的,因为它在我的localhost上正常工作,但是当我尝试在webfaction上部署时却没有。 非常感谢
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".
答案 0 :(得分:7)
重要的细节在这一行:
DETAIL: Key (billing_address_id)=(1) is not present in table "accounts_useraddress".
问题在于您尝试将订单与帐单地址相关联,而该帐单地址尚未出现在数据库中。
在您的代码中,您需要确保在尝试通过外键保存与其相关的对象之前将帐单邮寄地址保存到数据库中。