/during i apply an old tutorial for social media site clone i found this problem and here is the details of my project
frist my models.py file/
`from django.db import models
from django.utils.text import slugify
import misaka
from django import template
from django.contrib.auth import get_user_model
from django.urls import reverse
User = get_user_model()
register = template.Library()
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='')
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 = misaka.html(self.description)
super().save(*args, **kwargs)
def get_absolute_url(self):
return reverse('groups:single', kwargs={'slug': self.slug})
class Meta:
ordering = ['name']
class GroupMember(models.Model):
group = models.ForeignKey(Group, related_name='memberships', on_delete=models.CASCADE)
user = models.ForeignKey(User, related_name='user_groups', on_delete=models.CASCADE)
def __str__(self):
return self.user.username
class Meta:
unique_together = ('group', 'user')`
/then my urls.py/
`from django.urls import path
from . import views
app_name='groups'
urlpatterns=[
path('',views.ListGroups.as_view(),name='all'),
path('new/',views.CreateGroup.as_view(),name='create'),
path('post/in/<slug>/',views.SingleGroup.as_view(),name='single'),
path('join/<slug>/',views.JoinGroup.as_view(),name='join'),
path('leave/<slug>/',views.LeaveGroup.as_view(),name='leave'),
]
`
/*and this is my views.py belong myapp*/
from django.contrib.auth.mixins import LoginRequiredMixin,PermissionRequiredMixin
from django.urls import reverse
from django.contrib import messages
from django.shortcuts import get_object_or_404
from django.views.generic import CreateView,DetailView,ListView,RedirectView
from .models import Group,GroupMember
from . import models
class CreateGroup(LoginRequiredMixin,CreateView):
fields=('name','description')
model=Group
class SingleGroup(DetailView):
model=Group
class ListGroups(ListView):
model = Group
class JoinGroup(LoginRequiredMixin,RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse('groups:single',self.kwargs.get('slug'))
def get(self, request, *args, **kwargs):
group=get_object_or_404(Group,slug=self.kwargs.get('slug'))
try:
GroupMember.objects.create(user=self.request.user,group=group)
except:
messages.warning(self.request,('warning already a member'.title()))
else:
messages.success(self.request,('you are now a member'.title()))
return super().get(request,*args,**kwargs)
class LeaveGroup(LoginRequiredMixin,RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse('groups:single',self.kwargs.get('slug'))
def get(self, request, *args, **kwargs):
try:
membership=models.GroupMember.objects.filter(
user=self.request.user,
group__slug=self.kwargs.get('slug')
).get()
except models.GroupMember.DoesNotExist:
messages.warning(self.request,('sorry you aren't in this group'.title()))
else:
membership.delete()
messages.success(self.request,'you have left the group!'.title())
return super().get(request,*args,**kwargs)
/and it tells me that the problem in this 2 codes*/
`return super().get(request,*args,**kwargs)
return reverse('groups:single',self.kwargs.get('slug'))
so please help sure science-group is agroup that i created after slugify the name of the group science group
so please help
Clever is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1