Django:使用来自另一个 CharField 的数据自动生成一个 CharField

the*_*tor 3 python django

我有两个 charfieldsnameurl. name类似于“我的组”,我希望该url字段自动从name条目中派生。所以它会类似于“my_group”。

这就是我尝试完成此操作的方式,但它不起作用。

name = models.CharField(max_length=140)
url = models.CharField(max_length=140, default=name.replace (" ", "_"))
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ale*_*cxe 5

覆盖模型的save()方法并在url那里设置字段值:

class MyModel(models.Model):
    name = models.CharField(max_length=140)
    url = models.CharField(max_length=140)

    def save(self, *args, **kwargs):
        self.url = self.name.replace(' ', '_').lower()
        super(MyModel, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

也可以看看:

另请注意,拥有一个字段只是模型另一个字段的逻辑转换,这基本上表明您做事不正确。考虑在模型上使用一个property或自定义方法(get_url()例如)。