自动化Django模型中的一些条目,从同一个mod传递条目值

2024-10-05 10:56:45 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的型号.py代码:

from django.db import models
import shortuuid

class website(models.Model):
    url = models.URLField(max_length=100)
    uid = models.CharField(unique = True, max_length=40,default=str(shortuuid.uuid(name=url)))

def __unicode__(self):
    return self.url

在django管理面板中,当我输入URL时,uid的值不会改变。我只想输入URL,然后想使用shortuuid函数生成uid。我想将uid设置为editable=False,但在此之前我想确保函数正常工作正确。怎么做自动将uid值作为输入传递url?你知道吗


Tags: django函数代码frompyimportselfurl
1条回答
网友
1楼 · 发布于 2024-10-05 10:56:45

你不会在那里做的。不能在类级别编写依赖于类的实例属性的内容:这根本不可能。更重要的是,在实例化对象时会分配一个默认值,但是您希望在用户更改另一个属性的值之后更改它,所以这根本不是默认值。你知道吗

相反,您可能希望在保存时定义此值。只需重写save方法即可轻松实现:

def save(self, *args, **kwargs):
    if not self.uid:
        self.uid = str(shortuuid.uuid(name=self.user))
    return super(website, self).save(*args, **kwargs)

相关问题 更多 >

    热门问题