Good day,
In the project urlpatterns it's meant to be ""(two quotation marks) instead 
of "(one). 
Also, in the app you have not configured any path to handle the  
http://127.0.0.1:8000/. What you have is for the other views like signup 
and all. You need a base one like path("", ...
Adjust that and see if it works.

On Monday, July 24, 2023 at 6:12:33 AM UTC+1 AKHIL KORE wrote:

> Page not found (404)
> Request Method: GET
> Request URL: http://127.0.0.1:8000/
> Using the URLconf defined in question_post.urls, Django tried these URL 
> patterns, in this order:
>
> 1.admin/
> 2.signup/ [name='signup']
> 3.login/ [name='login']
> 4.logout/ [name='logout']
> 5.post_question/ [name='post_question']
> 6.question_list/ [name='question_list']
> 7.question/<int:question_id>/ [name='question_detail']
> 8.question/<int:question_id>/post_answer/ [name='post_answer']
> 9.answer/<int:answer_id>/like/ [name='like_answer']
> 10.question_detail/<int:question_id>/ [name='question_detail']
> The empty path didn’t match any of these.
>
> Below are my django project files.
> models.py
> ---------
> from django.db import models
> from django.contrib.auth.models import User
>
> class UserProfile(models.Model):
>     user = models.OneToOneField(User, on_delete=models.CASCADE)
>     # Remove the username field from here, as it belongs to the User model.
>     first_name = models.CharField(max_length=100, blank=True, null=True)
>     last_name = models.CharField(max_length=100, blank=True, null=True)
>     email = models.EmailField(blank=True, null=True)
>     profile_picture = models.ImageField(
>         upload_to='profile_pics/', blank=True, null=True)
>
>     def __str__(self):
>         return self.user.username
>
> class Question(models.Model):
>     user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
>     text = models.TextField()
>     created_at = models.DateTimeField(auto_now_add=True)
>
> class Answer(models.Model):
>     user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
>     question = models.ForeignKey(Question, on_delete=models.CASCADE)
>     text = models.TextField()
>     created_at = models.DateTimeField(auto_now_add=True)
>
> class Like(models.Model):
>     user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
>     answer = models.ForeignKey(Answer, on_delete=models.CASCADE)
>
> views.py
> --------
> from django.shortcuts import render, redirect
> from django.contrib.auth.mixins import LoginRequiredMixin
> from django.views import View
> from django.urls import reverse_lazy
> from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
> from .models import Question, Answer, Like, UserProfile
> from .forms import QuestionForm, AnswerForm, LikeForm, 
> CustomUserCreationForm
>
> class SignupView(View):
>     def get(self, request):
>         form = UserCreationForm()
>         return render(request, 'signup.html', {'form': form})
>
>     def post(self, request):
>         form = UserCreationForm(request.POST)
>         if form.is_valid():
>             form.save()
>             return redirect('login')
>         return render(request, 'signup.html', {'form': form})
>
> class UserLoginView(View):
>     def get(self, request):
>         form = AuthenticationForm()
>         return render(request, 'login.html', {'form': form})
>
>     def post(self, request):
>         form = AuthenticationForm(request, data=request.POST)
>         if form.is_valid():
>             username = form.cleaned_data.get('username')
>             password = form.cleaned_data.get('password')
>             user = authenticate(username=username, password=password)
>             if user is not None:
>                 login(request, user)
>                 # Redirect to the home page on successful login
>                 return redirect('home')
>         return render(request, 'login.html', {'form': form})
>
> class UserLogoutView(View):
>     def get(self, request):
>         logout(request)
>         return redirect('login')
>
> class QuestionPostView(LoginRequiredMixin, View):
>     login_url = reverse_lazy('login')
>
>     def get(self, request):
>         form = QuestionForm()
>         return render(request, 'post_question.html', {'form': form})
>
>     def post(self, request):
>         form = QuestionForm(request.POST)
>         if form.is_valid():
>             new_question = form.save(commit=False)
>             new_question.user = request.user
>             new_question.save()
>             return redirect('question_list')
>         return render(request, 'post_question.html', {'form': form})
>
> class QuestionListView(View):
>     def get(self, request):
>         questions = Question.objects.all()
>         return render(request, 'question_list.html', {'questions': 
> questions})
>
> class AnswerPostView(LoginRequiredMixin, View):
>     login_url = reverse_lazy('login')
>
>     def get(self, request, question_id):
>         question = Question.objects.get(pk=question_id)
>         form = AnswerForm()
>         return render(request, 'post_answer.html', {'question': question, 
> 'form': form})
>
>     def post(self, request, question_id):
>         question = Question.objects.get(pk=question_id)
>         form = AnswerForm(request.POST)
>         if form.is_valid():
>             new_answer = form.save(commit=False)
>             new_answer.user = request.user.userprofile
>             new_answer.question = question
>             new_answer.save()
>             return redirect('question_detail', question_id=question.id)
>         return render(request, 'post_answer.html', {'question': question, 
> 'form': form})
>
> class LikeAnswerView(LoginRequiredMixin, View):
>     login_url = reverse_lazy('login')
>
>     def post(self, request, answer_id):
>         answer = Answer.objects.get(pk=answer_id)
>         Like.objects.create(user=request.user, answer=answer)
>         return redirect('question_detail', question_id=answer.question.id)
>
> class QuestionDetailView(View):
>     def get(self, request, question_id):
>         question = Question.objects.get(pk=question_id)
>         answers = Answer.objects.filter(question=question)
>         return render(request, 'question_detail.html', {'question': 
> question, 'answers': answers})
>
> urls.py
> -------
> from django.urls import path
> from . import views
>
> urlpatterns = [
>     path('signup/', views.SignupView.as_view(), name='signup'),
>     path('login/', views.UserLoginView.as_view(), name='login'),
>     path('logout/', views.UserLogoutView.as_view(), name='logout'),
>     path('post_question/', views.QuestionPostView.as_view(), 
> name='post_question'),
>     path('question_list/', views.QuestionListView.as_view(), 
> name='question_list'),
>     path('question/<int:question_id>/',
>          views.QuestionDetailView.as_view(), name='question_detail'),
>     path('question/<int:question_id>/post_answer/',
>          views.AnswerPostView.as_view(), name='post_answer'),
>     path('answer/<int:answer_id>/like/',
>          views.LikeAnswerView.as_view(), name='like_answer'),
>     path('question_detail/<int:question_id>/',
>          views.QuestionDetailView.as_view(), name='question_detail'),
> ]
>
> project/urls.py
> ----------------
> from django.contrib import admin
> from django.urls import path, include
>
> urlpatterns = [
>     path('admin/', admin.site.urls),
>     path('', include('question_app.urls')),
> ]
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/53d0a2b5-daac-49ae-9539-f2e2fb539c0cn%40googlegroups.com.

Reply via email to