ПРИМЕЧАНИЕ Я не обязательно запрашиваю код для его создания, просто идеи о том, как это сделать. Ссылки и сообщения в блогах для указателей приветствуются.
Я создаю API отдыха.
У меня есть модель
class Showcase(models.Model):
title = models.CharField(max_length=50)
description = models.TextField(null=True)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING, related_name="Showcases")
created_on = models.DateTimeField(auto_now_add=True)
updated_on = models.DateTimeField(auto_now=True)
slug = models.SlugField(max_length=255, unique=True)
def __str__(self):
return self.title
Я пытаюсь создать функциональность, где Пользователь, который создал витрину, может добавлять пользователей, которые внесли свой вклад в проект, который является витриной. Я думал о том, чтобы создать свою собственную модель, подобную этой:
class Collaborator(models.Model):
post = models.ForeignKey(Showcase, on_delete=models.CASCADE, related_name="collaborated_showcases")
owner = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE, related_name="showcase_owner")
user = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE, related_name="collaborators")
skill = models.ForeignKey(Skill, on_delete=models.CASCADE, null=True, related_name="creative_type")
role = models.TextField(null=True)
added_on = models.DateTimeField(null=True)
def __str__(self):
return f"{self.user.name} collaborated on {self.post.name}"
Пользователь должен будет искать пользователей, а затем добавлять их в качестве участника к витрине, где мой мозг немного карабкается.
Другая важная вещь заключается в том, что я хочу иметь возможность произвольно go для пользователя и получить ВСЕ витрины, в которые он внес вклад.