django模型创建导致完整性错误1062

django模型创建导致完整性错误1062,django,django-models,Django,Django Models,我有一个简单的模型,当我使用objects.create时,我得到的是IntegrityError(1062,“键'PRIMARY'的重复条目'96119') 我搜索了类似的问题,但我的案例没有任何唯一字段,也没有试图操纵ID字段。。create命令很简单: TimelineQuestion.objects.create(alg_type=alg_str, alg_score=0, snippet=rep, child=self) 我做错了什么?我可以很容易地复制,所以它与数据库无关 模型如下

我有一个简单的模型,当我使用objects.create时,我得到的是IntegrityError(1062,“键'PRIMARY'的重复条目'96119')

我搜索了类似的问题,但我的案例没有任何唯一字段,也没有试图操纵ID字段。。create命令很简单:

TimelineQuestion.objects.create(alg_type=alg_str, alg_score=0, snippet=rep, child=self)
我做错了什么?我可以很容易地复制,所以它与数据库无关

模型如下:

class TimelineQuestion(CommonInfo):
    alg_type = models.CharField(max_length=32)
    alg_data = models.TextField(blank=True, null=True)
    alg_score = models.FloatField()

    snippet = models.ForeignKey('Snippet')
    child = models.ForeignKey('Child')

    last_seen = models.DateTimeField(editable=True, blank=True, null=True)
创建时的完整堆栈跟踪:

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response
  249.             response = self._get_response(request)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
  58.         return view_func(*args, **kwargs)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/rest_framework/viewsets.py" in view
  83.             return self.dispatch(request, *args, **kwargs)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
  483.             response = self.handle_exception(exc)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/rest_framework/views.py" in handle_exception
  443.             self.raise_uncaught_exception(exc)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/rest_framework/views.py" in dispatch
  480.             response = handler(request, *args, **kwargs)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/croinc/babycroinc/bc_views/rest.py" in timeline_questions_reshuffle
  309.         queryset = child.reshuffle_timeline_questions(self.TIMELINE_QUESTIONS_COUNT)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/croinc/babycroinc/bc_models/core.py" in reshuffle_timeline_questions
  346.         self.generate_question_set(num)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/croinc/babycroinc/bc_models/core.py" in generate_question_set
  294.                 new_questions = self.generate_random_timeline_questions(count_q)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/croinc/babycroinc/bc_models/core.py" in generate_random_timeline_questions
  508.                 questions += [TimelineQuestion.objects.create(alg_type=alg_str, alg_score=0, snippet=rep, child=self)]

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/query.py" in create
  394.         obj.save(force_insert=True, using=self.db)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/base.py" in save
  806.                        force_update=force_update, update_fields=update_fields)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/base.py" in save_base
  836.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/base.py" in _save_table
  922.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert
  961.                                using=using, raw=raw)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/query.py" in _insert
  1061.         return query.get_compiler(using=using).execute_sql(return_id)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  1099.                 cursor.execute(sql, params)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  65.                 return self.cursor.execute(sql, params)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/utils.py" in __exit__
  94.                 six.reraise(dj_exc_type, dj_exc_value, traceback)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  65.                 return self.cursor.execute(sql, params)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute
  101.             return self.cursor.execute(query, args)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/MySQLdb/cursors.py" in execute
  205.             self.errorhandler(self, exc, value)

File "/home/www/public_html/croinc.org/baby-croinc/croinc-baby-croinc.baby-croinc/env/lib/python2.7/site-packages/MySQLdb/connections.py" in defaulterrorhandler
  36.     raise errorclass, errorvalue
我设法找到了它

在我的中间件中,当处理请求时,我添加了一个“pre_save”信号,并在其中添加了instance.save(),这就是原因

def process_request(self, request):
    ....
    mark_user_agent = curry(self.mark_user_agent, request.user_agent, request.user)
    signals.pre_save.connect(mark_user_agent, dispatch_uid=(self.__class__, request,), weak=False)

def mark_user_agent(self, user_agent, user, sender, instance, **kwargs):
    ...
    instance.save()

什么是
child=self
?它是在类child的方法下创建的。。这不是原因