Django模型变量指向功能不起作用

Jam*_*ell 1 python django model-view-controller function python-2.7

我有以下内容:

class College(models.Model):
    url_name = create_url_name()
    def create_url_name(self):
        return self.name.lower().replace("the", "").strip().replace(" ", "_")
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我收到以下错误:

NameError: name 'create_url_name' is not defined
Run Code Online (Sandbox Code Playgroud)

我所做的只是调用我制作的函数,它怎么会不起作用?

Kev*_*vin 5

如果你想为你的url一个slug你可以像这样使用"SlugField":

from django.utils.text import slugify

class College(models.Model):
    name = models.CharField(unique=True, max_length=100)
    url_name = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.url_name = slugify(self.name)
        super(College, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

您也可以在代码中使用相同的方法:

class College(models.Model):
    name = models.CharField(unique=True, max_length=100)
    url_name = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.url_name = self.name.lower().replace("the", "").strip().replace(" ", "_")
        super(College, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)