Объедините 2 поля CharFields, чтобы сформировать атрибут - PullRequest
0 голосов
/ 07 мая 2020

Я хочу объединить поля first_name и last_name, чтобы создать поле full_name. Что затем будет использоваться для создания пули.

Я получаю NameError: name 'self' is not defined с этим кодом.

class Employee(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50, null=True, blank=True)
    full_name = self.first_name + " " + self.last_name 
    slug = AutoSlugField(null=True, default=None, unique=True, populate_from='full_name')

Ответы [ 2 ]

1 голос
/ 07 мая 2020

можно создать свойство в классе. Это возвращает свойство slug как

>>> e.slug
'sandesh-daundkar'
class Employee(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50, null=True, blank=True)
    slug = AutoSlugField(null=True, default=None, unique=True, populate_from='full_name')

    @property
    def full_name(self):
        return f"{self.first_name} {self.last_name}"
0 голосов
/ 07 мая 2020

Классовые методы могут быть заданы

class Employee(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50, null=True, blank=True)
    slug = AutoSlugField(null=True, default=None, unique=True, populate_from='full_name')

    @property
    def last_name(self):
        full_name = self.first_name + " " + self.last_name
        return full_name
...