Написание пользовательского поля модели url в Django
Я создаю одну модель под названием Profile, в которой мне нужно добавить поле url для профиля telegram. Оно принимает имя пользователя в качестве входных данных, но на выходе оно должно выглядеть следующим образом: https://t.me/{username}. Как я могу создать пользовательское поле модели для этой проблемы. Кстати, спасибо
Мое ожидание заключается в том, что вы вводите только имя пользователя, но в выводе оно идет с префиксом https://t.me/ и полный путь url будет https://t.me/{username}
создайте функцию под вашу модель и используйте ее в шаблоне:
def get_tg_link(self):
return
или переопределить функцию сохранения в вашей модели
def save(self, *args, **kwargs):
self.telegram_profile = f'https://t.me/{self.tg_username}'
super().save(*args, **kwargs)
Создайте функцию свойства в модели профиля.
@property
def get_telegram_link(self):
return f"https://t.me/{self.telegram_username}"
При обращении к ссылке модели в шаблоне или коде используйте:
profile_instance.get_telegram_link()