/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
and sure i added groups app in the url.py of the project as follow
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.Homepage.as_view(),name='home'),
path('accounts/',include('accounts.urls',namespace='accounts')),
path('accounts/',include('django.contrib.auth.urls')),
path('test/',views.TestPage.as_view(),name='test'),
path('thanks/',views.ThanksPage.as_view(),name='thanks'),
path('posts/',include('posts.urls',namespace='posts')),
path('groups/',include('groups.urls',namespace='groups')),
]
and here is the page of django error
/*
ModuleNotFoundError at /groups/join/sciense-group/
No module named ‘sciense-group’
Request Method: GET
Request URL: http://127.0.0.1:8000/groups/join/sciense-group/
Django Version: 5.0.1
Exception Type: ModuleNotFoundError
Exception Value:
No module named ‘sciense-group’
Exception Location: , line 1004, in _find_and_load_unlocked
Raised during: groups.views.JoinGroup
Python Executable: C:ProgramDataminiconda3envsdjangopython.exe
Python Version: 3.10.13
Python Path:
[‘C:UsersclevePycharmProjectsdjangoadvanced_djangosocial’,
‘C:ProgramDataminiconda3envsdjangopython310.zip’,
‘C:ProgramDataminiconda3envsdjangoDLLs’,
‘C:ProgramDataminiconda3envsdjangolib’,
‘C:ProgramDataminiconda3envsdjango’,
‘C:ProgramDataminiconda3envsdjangolibsite-packages’]
Server time: Sat, 17 Aug 2024 23:32:47 +0000
Traceback Switch to copy-and-paste view
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangocorehandlersexception.py, line 55, in inner
response = get_response(request)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangocorehandlersbase.py, line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangoviewsgenericbase.py, line 104, in view
return self.dispatch(request, *args, **kwargs)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangocontribauthmixins.py, line 73, in dispatch
return super().dispatch(request, *args, **kwargs)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangoviewsgenericbase.py, line 143, in dispatch
return handler(request, *args, **kwargs)
…
Local vars
C:UsersclevePycharmProjectsdjangoadvanced_djangosocialgroupsviews.py, line 31, in get
return super().get(request,*args,**kwargs)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangoviewsgenericbase.py, line 257, in get
url = self.get_redirect_url(*args, **kwargs)
…
Local vars
C:UsersclevePycharmProjectsdjangoadvanced_djangosocialgroupsviews.py, line 22, in get_redirect_url
return reverse('groups:single',self.kwargs.get('slug'))
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangourlsbase.py, line 54, in reverse
app_list = resolver.app_dict[ns]
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangourlsresolvers.py, line 654, in app_dict
self._populate()
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangourlsresolvers.py, line 565, in _populate
for url_pattern in reversed(self.url_patterns):
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangoutilsfunctional.py, line 47, in __get__
res = instance.__dict__[self.name] = self.func(instance)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangourlsresolvers.py, line 735, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangoutilsfunctional.py, line 47, in __get__
res = instance.__dict__[self.name] = self.func(instance)
…
Local vars
C:ProgramDataminiconda3envsdjangolibsite-packagesdjangourlsresolvers.py, line 728, in urlconf_module
return import_module(self.urlconf_name)
…
Local vars
C:ProgramDataminiconda3envsdjangolibimportlib__init__.py, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
…
Local vars
<frozen importlib._bootstrap>, line 1050, in _gcd_import
<source code not available>
…
Local vars
<frozen importlib._bootstrap>, line 1027, in _find_and_load
<source code not available>
…
Local vars
<frozen importlib._bootstrap>, line 1004, in _find_and_load_unlocked
<source code not available>
…
Local vars
*/
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.
4