Django: Как использовать CreateView в одной модели и одновременно обновлять поле во второй модели. (Использование формы только в шаблонах)

Я не смог найти прямой ответ в другом месте. Я создал модель Group Model и модель GroupMember. Моя цель состоит в том, чтобы пользователь создавал группу через форму в шаблонах, тогда автоматически в модели GroupMember должны заполняться поля. В частности, поле is_admin должно быть равно 1, хотя его значение по умолчанию установлено на 0. Как сказать CreateGroupView, чтобы GroupMember заполнил модель

?

views.py

class CreateGroupView(LoginRequiredMixin, CreateView):
    fields = ("name","description")
    model = Group

class SingleGroupView(DetailView):
    model = Group

class ListGroupView(ListView):
    model = Group

models.py

class Group(models.Model):
    name = models.CharField(max_length=255, unique=True)
    slug = models.SlugField(allow_unicode=True, unique=True)
    description = models.TextField(blank=True, default='')
    members = models.ManyToManyField(User,through="ProjectMember")
    
    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super().save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse("groups:single", kwargs={"slug": self.slug})


class GroupMember(models.Model):
    user = models.ForeignKey(User,related_name='user_groups',on_delete=models.CASCADE,)
    group = models.ForeignKey(Group, related_name="memberships",on_delete=models.CASCADE,)
    is_admin = models.BooleanField(default=False)

    def __str__(self):
        return self.user.username

    class Meta:
        unique_together = ("group", "user")

мой шаблон для создания группы

  <form class="m-5" method="POST" action="{% url 'groups:create' %}" id="groupForm">
    {% csrf_token %}
    <div class="form-group">
        <label for="id_name">Name</label>
        <input type="text" name="name" maxlength="255" class="form-control" placeholder="Name" title="" required id="id_name">
    </div>
  
    <div class="form-group">
        <label for="id_description">Description</label>
        <textarea name="description" cols="40" rows="10" class="form-control" placeholder="Description" title="" id="id_description"></textarea>
    </div>
    <input type="submit" value="Create" class="btn btn-primary btn-large">
  </form>

urls.py

urlpatterns = [
    path('', views.ListGroupView.as_view(), name="all"),
    path("new/", views.CreateGroupView.as_view(), name="create"),
    path("group/<slug>/",views.SingleGroupView.as_view(),name="single"),
]
Вернуться на верх