Python IntegrityError在表上插入或更新;订单“U订单”;违反外键约束“;
我正在尝试在Django 1.7中构建一个电子商务站点,除了尝试使用签出外,其他一切都正常,我遇到了以下错误。我不确定它是怎么做到的,因为它在我的本地主机上运行得很好,但在我尝试部署到webfaction上时就不行了。 非常感谢Python IntegrityError在表上插入或更新;订单“U订单”;违反外键约束“;,python,django,python-2.7,django-models,foreign-keys,Python,Django,Python 2.7,Django Models,Foreign Keys,我正在尝试在Django 1.7中构建一个电子商务站点,除了尝试使用签出外,其他一切都正常,我遇到了以下错误。我不确定它是怎么做到的,因为它在我的本地主机上运行得很好,但在我尝试部署到webfaction上时就不行了。 非常感谢 Environment: Request Method: GET Request URL: http://myshoppingapp.com/checkout/ Django Version: 1.7.1 Python Version: 2.7.9 Install
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".
重要的细节如下:
DETAIL: Key (billing_address_id)=(1) is not present in table "accounts_useraddress".
问题是您试图将订单与数据库中尚未存在的帐单地址链接
在您的代码中,您需要确保账单地址已保存到数据库中,然后才能尝试通过外键保存与其相关的对象。您对如何执行此操作有何建议?我在尝试我觉得自己很愚蠢:-(你能从你正在执行new_order.save()的views.py文件中发布一段代码吗?