BL4CK R4BBIT
July 30, 2019, 11:46 a.m.

Как прикрутить иконки к списку

Network Social

Хочу в профиле пользователя выводить ссылки на соцсети класс соцсетей профиля оформлен следующим кодом в модели

  1. class SocialNetworks(models.Model):
  2. SOCIAL_NETWORKS = (
  3. ('FACEBOOK', 'Facebook'),
  4. ('VK', 'Вконтакте'),
  5. ('TWITTER', 'Твиттер'),
  6. ('INSTAGRAMM', 'Инстаграмм'),
  7. ('PINTEREST', 'Пинтерест'),
  8. ('GITHUB', 'GITHUB'),
  9. )
  10. social_network = models.CharField(max_length=64, choices=SOCIAL_NETWORKS, verbose_name='Социальная сеть')
  11. urls = models.CharField(max_length=64, blank=True, verbose_name='Ссылка')

Вопрос как в шаблон вывести эти ссылки в виде иконок. Понятно что циклом пройти и собрать наличие но как к каждой сети прикрутить соответствующую иконка FontAwesome

2

Do you like it? Share on social networks!

4
Evgenii Legotckoi
  • July 30, 2019, 12:42 p.m.
  • The answer was marked as a solution.

Делаете ещё один кортеж с иконками и добаляете метод, по которому будете возвращать иконку в зависимости от типа.

Приерно вот так должно получится в модели, ну а в шаблоне просто вызываете метод get_icon

  1. class SocialNetworks(models.Model):
  2. SOCIAL_NETWORKS = (
  3. ('FACEBOOK', 'Facebook'),
  4. ('VK', 'Вконтакте'),
  5. ('TWITTER', 'Твиттер'),
  6. ('INSTAGRAMM', 'Инстаграмм'),
  7. ('PINTEREST', 'Пинтерест'),
  8. ('GITHUB', 'GITHUB'),
  9. )
  10.  
  11. SOCIAL_NETWORK_ICONS = (
  12. ('FACEBOOK', 'fa fa-facebook'),
  13. ('VK', 'fa fa-vk'),
  14. ('TWITTER', 'fa fa-twitter'),
  15. ('INSTAGRAMM', 'fa fa-instagram'),
  16. ('PINTEREST', 'fa fa-pinterest'),
  17. ('GITHUB', 'fa fa-github'),
  18. )
  19. social_network = models.CharField(max_length=64, choices=SOCIAL_NETWORKS, verbose_name='Социальная сеть')
  20. urls = models.CharField(max_length=64, blank=True, verbose_name='Ссылка')
  21.  
  22. def get_icon(self):
  23. return dict(SOCIAL_NETWORK_ICONS)[self.social_network]
    BL4CK R4BBIT
    • July 30, 2019, 12:45 p.m.

    Решил по другому
    присвоил константы для значений в списке choise

    1. class SocialNetworks(models.Model):
    2. FACEBOOK = "fab fa-facebook"
    3. VK = "fab fa-vk"
    4. TWITTER = "fab fa-twitter"
    5. INSTAGRAMM = "fab fa-instagram"
    6. PINTEREST = "fab fa-pinterest"
    7. GITHUB = "fab fa-github"
    8. SOCIAL_NETWORKS = (
    9. ('FACEBOOK', 'Facebook'),
    10. ('VK', 'Вконтакте'),
    11. ('TWITTER', 'Твиттер'),
    12. ('INSTAGRAMM', 'Инстаграмм'),
    13. ('PINTEREST', 'Пинтерест'),
    14. ('GITHUB', 'GITHUB'),
    15. )
    16. social_network = models.CharField(max_length=64, choices=SOCIAL_NETWORKS, verbose_name='Социальная сеть')
    17. urls = models.CharField(max_length=64, blank=True, verbose_name='Ссылка')
      BL4CK R4BBIT
      • July 30, 2019, 12:46 p.m.

      Решение брал отсюда
      http://vladimir-stupin.blogspot.com/2017/07/choices-django.html

        Evgenii Legotckoi
        • July 30, 2019, 12:50 p.m.

        тоже как вариант, я просто определяю choices одной, максимум двумя буквами всегда, чтобы минимизировать затраты базы данных в таких случаях. Поэтому предподчитаю свой вариант, у меня бы скорее всего это выглядело так.

        1. class SocialNetworks(models.Model):
        2. SOCIAL_NETWORKS = (
        3. ('FACEBOOK', 'f'),
        4. ('VK', 'v'),
        5. ('TWITTER', 't'),
        6. ('INSTAGRAMM', 'i'),
        7. ('PINTEREST', 'p'),
        8. ('GITHUB', 'g'),
        9. )

          Comments

          Only authorized users can post comments.
          Please, Log in or Sign up
          • Last comments
          • AK
            April 1, 2025, 11:41 a.m.
            Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
          • Evgenii Legotckoi
            March 9, 2025, 9:02 p.m.
            К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
          • VP
            March 9, 2025, 4:14 p.m.
            Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
          • ИМ
            Nov. 22, 2024, 9:51 p.m.
            Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
          • Evgenii Legotckoi
            Oct. 31, 2024, 11:37 p.m.
            Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup