user5721897
user5721897

Reputation:

How to store social usernames/links in Django?

I have a personal blog written with Django. I want to make my social links/usernames dynamic so I can change them whenever I want.

I'm doing this with charfields. I'm adding new charfield for each social username/link field then my template's getting these usernames to show them in a tags. It's okay but I think it's not the easiest way.

Am I wrong or there is a better way to do this?

Upvotes: 0

Views: 733

Answers (1)

Vitor Freitas
Vitor Freitas

Reputation: 3610

Maybe it would be easier to create a model for it. That way you would be able to add/remove social links without having to touch the code.

from django.conf import settings
from django.db import models

class SocialProfile(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='social_profiles')
    network = models.CharField(max_length=100)
    username = models.CharField(max_length=100)
    url = models.URLField(max_length=500)

Then if you are using Django Admin, you could add this model as a TabularInline of the User model for example.

In your templates you could render the links dynamically:

{% for profile in request.user.social_profiles.all %}
  <a href="{{ profile.url }}" title="{{ profile.network }}">{{ profile.username }}</a>
{% endfor %}

Something like that.

Upvotes: 2

Related Questions