Как удалить членов команды Django Python
У меня есть команды и есть члены (игроки). Владелец команды приглашает игрока в свою команду по электронной почте. И игрок принимает приглашение присоединиться к команде. После принятия он становится членом приглашенной команды .
Теперь я хочу сделать так, чтобы игрок мог покинуть команду, а также дать возможность владельцу команды удалить игрока из своей команды. Поскольку я новичок в Django, я пока не могу этого добиться. Я пытался создать delete_member.html и функцию delete_member в Views сначала для владельца команды для удаления его члена, но я ничего не вижу на этой странице. Что я делаю неправильно?
Приложения:
Командное приложение - Просмотров
Team App - Models
from django.contrib.auth.models import User
from django.db import models
class Team(models.Model):
ACTIVE = 'active'
DELETED = 'deleted'
CHOICES_STATUS = (
(ACTIVE, 'Active'),
(DELETED, 'Deleted')
)
title = models.CharField(max_length=255)
members = models.ManyToManyField(User, related_name='teams')
created_by = models.ForeignKey(User, related_name='created_teams', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
status = models.CharField(max_length=10, choices=CHOICES_STATUS, default=ACTIVE)
class Meta:
ordering = ['title']
def __str__(self):
return self.title
class Invitation(models.Model):
INVITED = 'invited'
ACCEPTED = 'accepted'
REJECTED = 'rejected'
CHOICES_STATUS = (
(INVITED, 'Invited'),
(ACCEPTED, 'Accepted'),
(REJECTED, 'Rejected')
)
team = models.ForeignKey(Team, related_name='invitations', on_delete=models.CASCADE)
email = models.EmailField()
code = models.CharField(max_length=20)
status = models.CharField(max_length=20, choices=CHOICES_STATUS, default=INVITED)
date_sent = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.email
Team App - Urls
from django.urls import path
from .views import team, add, edit, activate_team, invite, delete_member
app_name = 'team'
urlpatterns = [
path('add/', add, name='add'),
path('edit/', edit, name='edit'),
path('delete_member/', delete_member, name='delete_member'),
path('invite/', invite, name='invite'),
path('activate_team/<int:team_id>/', activate_team, name='activate_team'),
path('<int:team_id>/', team, name='team')
]
Team App - Templates/delete_member.html
{% extends 'core/base.html' %}
{% block title %}Delete member | {% endblock %}
{% block content %}
<nav class="breadcrumb" aria-label="breadcrumbs">
<ul>
<li><a href="#">Dashboard</a></li>
<li><a href="{% url 'myaccount' %}">My account</a></li>
<li class="is-active"><a href="{% url 'team:add' %}" aria-current="page">Add team</a></li>
</ul>
</nav>
<div class="columns" id="team-app">
<div class="column is-4">
<h1 class="title">Delete member</h1>
<form method="post" action="." @submit="validateForm">
{% csrf_token %}
<div class="field">
<label>Member</label>
{% for member in team.members.all %}
<p>{{ member.username }}</p>
<div class="field">
<div class="control">
<button class="button is-success">Delete</button>
</div>
</div>
{% endfor %}
</div>
<div class="notification is-danger" v-if="errors.length">
<p v-for="error in errors">[[ error ]]</p>
</div>
</form>
</div>
</div>