【问题标题】:Django duplicate existing record in databaseDjango复制数据库中的现有记录
【发布时间】:2012-01-08 19:39:03
【问题描述】:

我正在尝试复制 PostgreSQL 数据库中的现有记录,每次我点击复制按钮时,它似乎都会以 2 为增量进行复制。如果数据库中有 1 条记录,一旦点击按钮,它将创建记录 2 和 3。

型号

class Detail(models.Model):
    created = models.DateTimeField(auto_now_add=True, blank=False)
    last_update = models.DateTimeField(auto_now=True)
    user = models.ForeignKey(User, related_name='+')
    draft = models.BooleanField()
    outage_name = models.ForeignKey(Outage, related_name='+')
    group_name = models.CharField(max_length=100)
    shift = models.CharField(max_length=6)
    activity = models.CharField(max_length=100, null = False)
    culture_title = models.ForeignKey(Culture, related_name='+')
    work_completed = models.TextField()
    work_planned = models.TextField()
    radiation_info = models.TextField()
    action_item = models.TextField()
    lesson_learned = models.TextField()

查看

def turnover_copy(request, id):
    obj = Detail.objects.get(pk=id)
    obj.pk = None
    obj.draft = True
    if obj.draft:
        user = request.user.id
        obj.user_id = user
        obj.work_planned = 'My Work Planned.'
        obj.save()
        return HttpResponse('Created')
    else:
    return HttpResponse('Unable to duplicate template.')

编辑:我在模板的 for 循环中有 def,所以它一直在创建重复项!

【问题讨论】:

  • 您确定代码由于某种原因没有被调用两次吗?一些打印语句可能会帮助您断言。
  • 我在 for 循环中有一个带有 def 的模板,DOH!感谢您指出这一点!
  • 很高兴听到,有时这很容易:)。我已经根据评论创建了一个答案,以便可以存档问题。

标签: django


【解决方案1】:

您确定代码由于某种原因没有被调用两次吗?一些打印语句可能会帮助您断言。

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 1970-01-01
    • 2018-04-09
    • 2015-03-05
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多