Как добавить вычисляемое значение по умолчанию в модель Django?
Я хочу добавить поле slug
в существующую модель, и значение должно быть вычислено с помощью функции Django slugify
на основе поля title
. Как это можно сделать?
Я понимаю, что могу переопределить метод save
класса модели и сделать все там, это будет работать для всех будущих сохраненных экземпляров, но есть ли элегантный способ заполнить это поле и для существующих строк?
Вы можете использовать этот пакет для автогенерации вашего slugfield: https://django-autoslug.readthedocs.io/en/latest/fields.html
from django.db import models
from autoslug import AutoSlugField
class MyModel(models.Model):
title = models.CharField(max_length=200)
slug = AutoSlugField(populate_from='title')