Рекомендации по настройке моделей для приложения Django для социальных сетей
Я работаю над проектом персональной социальной сети. У каждого пользователя есть профиль.
--Профильная модель--
from django.db import models
from django.contrib.auth.models import User
from PIL import Image
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='profile_pics')
background_image = models.ImageField(upload_to='profile_background_pics', blank=True, null=True,)
bio = models.CharField(max_length=200, help_text="200 characters or less")
В профиле я хочу, чтобы пользователь мог перечислить все технологические стеки (языки программирования и фреймворки), с которыми он работает, и его уровень владения каждым из них.
Пример псевдокода...:
@testuser -
Tech Stacks model -
{ Programming Languages: [Python (Intermediate), Java (Noob)],
Frontend: [HTML (Intermediate), CSS (Intermediate), JS (Intermediate)],
Frameworks: [Django (Getting there..)],
Devops: [AWS (Noob), Heroku (Noob)],
and so on...
Итак, каждый профиль (поскольку профиль имеет OneToOne с contrib.auth.user) будет иметь модель технического стека. Модель технологического стека будет иметь несколько категорий (языки, фреймворки и т.д.). Каждая категория имеет несколько объектов. И каждый объект будет иметь уровень мастерства пользователя.
Итак, если я запрошу user.tech_stacks
, то он должен вернуть что-то вроде вышеприведенного. А user.tech_stacks.programming_languages
должен вернуть [Python (Intermediate), Java (Noob)],
Я также должен быть в состоянии запросить всех пользователей, которые являются Python (Intermediate) и Python (Advanced)
Спасибо за помощь... не совсем понимаю, с чего начать.