我想在一个模型上创建一个自定义保存方法,该模型结合了其中两个字段的值,其中一个是存储在外键关系中的值。
例如,鉴于此模型:
class Post(models.Model):
text = charfield()
date = datefield()
user = ForeignKey(other model)
key = integerfield()
unique = charfield()
我希望能够将名为unique的字段保存为外键中的用户用户名和键字段(自动递增整数字段)的组合。这样的事情可能吗?我搜索了类似的问题但找不到任何问题。
答案 0 :(得分:0)
当然,在您至少保存一次模型之前,您将没有钥匙。因此,您的保存方法需要调用超类保存,获取密钥,设置唯一字段,然后再次保存。
答案 1 :(得分:0)
您可以使用django post_save信号在第一次保存后修改数据
应该是这样的:
from django.db.models.signals import post_save
@receiver(post_save, sender=Post)
def my_handler(sender, **kwargs):
obj = kwargs['instance']
obj.unique = obj.user + str(obj.key)
obj.save()
Doc on signals:https://docs.djangoproject.com/en/dev/topics/signals/