- project_name: CharField
- project_type: ForeignKey to=ProjectType
- core_idea: CharField
- description: TextField
- finish_date: DateField
- status: CharField
- tools: ManyToManyField(to=Tools, through=ToolsInProject)
- roles: ManyToManyField(to=Role, through=RolesInProject)
- tags: ManyToManyField(to=Tag)
- groups: ManyToManyField(to=Group)
- type_name: CharField
- role: ForeignKey(to=Role)
- project: ForeignKey(to=Project)
- participants_needed: PositiveIntegerField
- tool: ForeignKey(to=Tool)
- project: ForeignKey(to=Project)
- participants_needed: PositiveIntegerField
- tag_name = CharField
- group_name = CharField
- project: ForeignKey(to=Project)
- profile: ForeignKey(to=Profile)
- roles: ManyToManyField(to=Role, through=RolesInProject)
- tools: ManyToManyField(to=Tool, through=ToolsInProject)
- groups: ManyToManyField(to=Group)
- profile: ForeignKey(to=Profile)
- project: ForeignKey(to=Project)
- cover_letter: TextField
- resume_url: URLField
- status: CharField
python manage.py makemigrations
python manage.py migrate
python manage.py create_instance_projects
class ProjectsSerializer(ModelSerializer):
roles = RolesInProjectSerializer(many=True, source="rolesinproject_set")
tools = ToolsInProjectSerializer(many=True, source="toolsinproject_set")
tags = TagsSerializer(many=True)
groups = GroupSerializer(many=True)
class Meta:
model = Project
fields = [
"project_type",
"project_name",
"core_idea",
"description",
"finish_date",
"status",
"tools",
"roles",
"tags",
"groups",
]
P.S декоратор @property использован для функции is_finished модели проекта