Python Django中UserProfile和socialAuth上的IntegrityError
我有一个Django应用程序启用了社交身份验证。我用我的自定义用户配置文件获得IntegrityError 假设我的Django应用程序中有三个模型:Python Django中UserProfile和socialAuth上的IntegrityError,python,django,django-models,django-socialauth,Python,Django,Django Models,Django Socialauth,我有一个Django应用程序启用了社交身份验证。我用我的自定义用户配置文件获得IntegrityError 假设我的Django应用程序中有三个模型: class UserProfile(models.Model): user = models.OneToOneField(User) vk = models.CharField(max_length=2000) subscribed = models.BooleanField(default=True) class VK
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(1452)的IntegrityError无法添加或更新
子行:外键约束失败
(Django
comments\u usergroup
,约束
comments\u usergroup\u user\u id\u 75607d294cb3ec28\u fk\u auth\u user\u id
FOREIGN
键(user\u id
)引用auth\u user
(id
))
下面是我如何添加新用户组的代码:
@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', '/'))
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`))')