我正在开发一个小型 django 项目,为此我创建了一项功能,允许用户创建然后加入该组。
现在,问题来了:
每当我离开小组并尝试重新加入它时,它都会显示我在问题中提到的错误
“唯一约束失败:groups_groupmember.group_id,groups_groupmember.user_id”
这是我的加入课程:
class JoinGroup(LoginRequiredMixin, generic.RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse('groups:single', kwargs={'slug': self.kwargs.get('slug')})
def get(self, request, *args, **kwargs):
group = get_object_or_404(Group, slug=self.kwargs.get('slug'))
from sqlite3 import IntegrityError
try:
# GroupMember.objects.create(group=group)
GroupMember.objects.create(user=self.request.user, group=group)
except IntegrityError:
messages.warning(self.request, 'already a member!')
else:
messages.success(self.request, 'You are now a member!')
return super().get(request, *args, **kwargs)
这是我的models.py
from django.db import models
from django.utils.text import slugify
from django.urls import reverse
# Create your models here.
# GROUPS MODELS.PY
import markdown
from django.contrib.auth import get_user_model # returns user model that currently active in this project
User = get_user_model()
from django import template
register = template.Library()
class Group(models.Model):
name = models.CharField(max_length=256, unique=True)
slug = models.SlugField(allow_unicode=True, unique=True)
description = models.TextField(blank=True, default='')
description_html = models.TextField(editable=False, default='', blank=True)
members = models.ManyToManyField(User, through='GroupMember')
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
self.description_html = markdown.markdown(self.description)
super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse('groups:single', kwargs={'slug': self.slug})
class Meta:
ordering = ['name']
你能帮我解决这个问题吗?谢谢 !:)
白衣非少年
相关分类