【问题标题】:Django Admin: How do I know when the user is editing an existing object or saving a new object?Django Admin:我如何知道用户何时正在编辑现有对象或保存新对象?
【发布时间】:2009-09-01 17:14:24
【问题描述】:

我想学习如何使用 Django Admin。我如何知道用户何时正在编辑现有对象或保存新对象?

例如,如果我想在用户保存新对象或保存已编辑对象时创建一个函数来做一些不同的事情,我怎么知道哪个是哪个?

谢谢大家:)

对不起我的英语。

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:
    class MyModel(models.Model):
    
        def save(self):
            if self.id != None:
                print "Edited object"
            else:
                print "New object"
            super(MyModel, self).save()
    

    【讨论】:

    • 第一次保存模型的id属性为None。
    【解决方案2】:

    您可能可以执行以下操作之一:

    1. 侦听 Django 信号。在您的情况下,pre_save signal 可能很有用。
    2. 覆盖ModelAdmin.save_model
    3. 覆盖您的模型保存方法,如 Adam 所述

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2012-07-17
      相关资源
      最近更新 更多