【问题标题】:Django updates model instead of inserting (pk=None) (INSERT INTO QUERY)Django 更新模型而不是插入 (pk=None) (INSERT INTO QUERY)
【发布时间】:2014-09-08 11:09:47
【问题描述】:

我正在尝试保存模型条目,但 django 坚持更新旧条目而不是创建新条目。这是我创建新条目的代码:

打印状态显示 log_entry.pk = None before save and log_entry = old_entry.pk after save.

    log_entry = QuoteResponseLog()
    log_entry.quote_response = self
    log_entry.manager = manager
    log_entry.message = action.log()
    print(log_entry)
    log_entry.save(force_insert=True)
    print(log_entry)

编辑:QuoteResponseLog 模型 (Django-model-utils)

from model_utils.models import TimeStampedModel
class QuoteResponseLog(TimeStampedModel):
    quote_response = models.ForeignKey(
        QuoteResponse
    )

    manager = models.ForeignKey(
        Manager
    )

    message = models.CharField(max_length=256)

    def __unicode__(self):
        return str(self.created) + " : [" + str(self.manager) + "] : " + self.message + "(" + str(self.pk) + ")"

编辑 2: 来自实际 sql 查询的日志条目:

{u'time': u'0.003', u'sql': u'QUERY = u\'INSERT INTO "quote_hub_quoteresponselog" ("created", "modified", "quote_response_id", "manager_id", "message") VALUES (%s, %s, %s, %s, %s)\' - PARAMS = (u\'2014-09-08 11:57:10.150000\', u\'2014-09-08 11:57:10.172000\', 6, 3, u\'Godk\\xe4nnde\')'}

EDIT3:插入到 dbshel​​l 中的 SQLQuery 工作正常。

【问题讨论】:

    标签: django


    【解决方案1】:

    错误是微不足道的,级联删除。在分配给 lg_entry.quote_response 之前删除了自己。

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2014-09-01
      相关资源
      最近更新 更多