我有一个启用了社交身份验证的Django应用。我使用自定义UserProfile获取了IntegrityError。
假设我的Django应用程序中有三个模型:
class UserProfile(models.Model):
user = models.OneToOneField(User)
vk = models.CharField(max_length=2000)
subscribed = models.BooleanField(default=True)
class VKGroup(models.Model):
gid = models.IntegerField(unique=True, primary_key=True)
name = models.CharField(max_length=3000)
class UserGroup(models.Model):
group = models.ForeignKey(VKGroup)
user = models.ForeignKey(UserProfile)
class Meta:
unique_together = ('group', 'user',)
当我尝试使用UserProfile和VKGroup创建UserGroup时,我收到了完整性错误:
/ comments / addgroup中的IntegrityError(1452,'无法添加或更新a 子行:外键约束失败 (
Django
。comments_usergroup
,CONSTRAINTcomments_usergroup_user_id_75607d294cb3ec28_fk_auth_user_id
外国人 KEY(user_id
)参考auth_user
(id
))')
以下是我添加新UserGroup的代码:
@login_required
def add_group(request):
user = request.user
#profile exists here
profile = get_object_or_404(UserProfile, user=user)
vk_group = VKGroup(<some paramethers here to create valid group>)
vk_group.save()
user_group = UserGroup(user=profile, group=vk_group)
user_group.save()
return redirect(request.META.get('HTTP_REFERER', '/'))
我正在使用有效的UserProfile和VKGroup创建UserGroup,并且它工作正常,直到我集成了social-auth。请帮助我解决问题并解决它。
谢谢!
这是我的追溯:
File "./comments/views.py" in add_group
145. user_group.save() File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save
589. force_update=force_update, update_fields=update_fields) File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save_base
617. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in
_save_table
698. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in
_do_insert
731. using=using, raw=raw) File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py" in manager_method
92. return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in
_insert
921. return query.get_compiler(using=using).execute_sql(return_id) File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py" in execute_sql
920. cursor.execute(sql, params) File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py" in execute
81. return super(CursorDebugWrapper, self).execute(sql, params) File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py" in execute
65. return self.cursor.execute(sql, params) File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py" in
__exit__
94. six.reraise(dj_exc_type, dj_exc_value, traceback) File "/usr/local/lib/python2.7/dist-packages/django/db/backends/utils.py" in execute
65. return self.cursor.execute(sql, params) File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py" in execute
129. return self.cursor.execute(query, args) File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py" in execute
205. self.errorhandler(self, exc, value) File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py" in defaulterrorhandler
36. raise errorclass, errorvalue
Exception Type: IntegrityError at /comments/addgroup Exception Value: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`Django`.`comments_usergroup`, CONSTRAINT `comments_usergroup_user_id_75607d294cb3ec28_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`))')