Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用return覆盖save model Django save方法_Python_Django_Model - Fatal编程技术网

Python 用return覆盖save model Django save方法

Python 用return覆盖save model Django save方法,python,django,model,Python,Django,Model,我有这个函数,我想让它成为一个消息模型类的方法 def将消息保存到数据库(消息,消息id): 消息( message_id=message_id, subject=message.subject, 发件人=message.sender.address, has_attachments=message.has_attachments, 发送日期=message.sent, 接收日期=message.received ) mex.save() 返回mex 我尝试了各种方法,但仍然会出错。我需要返回

我有这个函数,我想让它成为一个消息模型类的方法

def将消息保存到数据库(消息,消息id):
消息(
message_id=message_id,
subject=message.subject,
发件人=message.sender.address,
has_attachments=message.has_attachments,
发送日期=message.sent,
接收日期=message.received
)
mex.save()
返回mex
我尝试了各种方法,但仍然会出错。我需要返回,特别是保存的对象的id

更新 这是我让它工作的唯一方法,但这是一个围绕。。。
我在Pyacharm IDE中遇到了错误,我无法理解在这种情况下如何使用super(),因为我想传递一个对象并用这种方法处理它,而不是args和kwargs。

应该像这样简单。只需重写模型的save方法,并在超级调用后返回实例

class YourModel(models.Model):
name=models.CharField(最大长度=20)
def保存(自身、*args、**kwargs):
超级(你的模型,自我)。保存(*args,**kwargs)
回归自我
您的\u model\u saved\u实例=您的模型(name='Edoardo')。save()
您甚至可以使用此功能创建一个基本模型类,并在所需的每个模型中使用它

类基本模型(models.Model):
类元:
抽象=真
def保存(自身、*args、**kwargs):
super(BaseModel,self).save(*args,**kwargs)
回归自我
为您的模型分类(基本模型):
name=models.CharField(最大长度=20)
您的\u model\u saved\u实例=您的模型(name='Edoardo')。save()

它应该像这样简单。只需重写模型的save方法,并在超级调用后返回实例

class YourModel(models.Model):
name=models.CharField(最大长度=20)
def保存(自身、*args、**kwargs):
超级(你的模型,自我)。保存(*args,**kwargs)
回归自我
您的\u model\u saved\u实例=您的模型(name='Edoardo')。save()
您甚至可以使用此功能创建一个基本模型类,并在所需的每个模型中使用它

类基本模型(models.Model):
类元:
抽象=真
def保存(自身、*args、**kwargs):
super(BaseModel,self).save(*args,**kwargs)
回归自我
为您的模型分类(基本模型):
name=models.CharField(最大长度=20)
您的\u model\u saved\u实例=您的模型(name='Edoardo')。save()

您能告诉我们到目前为止您尝试过的方法吗?您遇到了什么错误?将错误的完整回溯添加到您的问题中。您能告诉我们您迄今为止尝试过的方法吗?您会遇到什么错误?将错误的完整回溯添加到问题中。
@staticmethod
def save_mex(message, message_id):
    mex = Message(
        message_id=message_id,
        subject=message.subject,
        sender=message.sender.address,
        has_attachments=message.has_attachments,
        sent_date=message.sent,
        received_date=message.received
    )
    mex.save()

    return mex