Ошибка с формой
У меня вылезает такая ошибка
NoReverseMatch at /view_games/vin/ Reverse for 'add_review' with arguments '('',)' not found. 1 pattern(s) tried: ['review/(?P[0-9]+)/\Z'] И оно винит это
<form action="{% url 'add_review' game.id %}" method='post'>
Я щяс покажу вам все
Views.py
class AddReview(View):
def post(self, request, pk):
form = ReviewsForm(request.POST)
if form.is_valid():
form = form.save(commit=False)
form.game_id = pk
form.save()
return redirect('/')
Models.py
class Reviews(models.Model):
email = models.EmailField()
name = models.CharField('Имя', max_length=100)
text = models.TextField('Комментарий', max_length=5000)
parent = models.ForeignKey('self', verbose_name='Родитель', on_delete=models.SET_NULL,
blank=True, null=True)
game = models.ForeignKey(Games, verbose_name='Игра', on_delete=models.CASCADE)
def __str__(self) -> str:
return f'{ self.name } - { self.game }'
class Meta:
verbose_name = 'Отзыв'
verbose_name_plural = 'Отзывы'
Urls.py
path('review/<int:pk>/', AddReview.as_view(), name='add_review'),
Forms.py
from django import forms
from .models import Reviews
class ReviewsForm(forms.ModelForm):
class Meta:
model = Reviews
fields = ('name', 'email', 'text')
Html
<h5 class="fw-bold">Отзывы</h5>
{% csrf_token %}
<form action="{% url 'add_review' game.id %}" method='post'>
model Games
class Games(models.Model):
title = models.CharField(max_length=255, verbose_name='Название игры')
game_description = models.TextField(verbose_name='Описание игры')
updated_at = models.DateTimeField(auto_now=True, verbose_name='Обновлено')
downloads = models.DecimalField(max_digits=16, decimal_places=0,
verbose_name='Загрузок')
watches = models.DecimalField(max_digits=19, decimal_places=0,
verbose_name='Просмотров')
video = models.URLField(null=True)
main_image = models.ImageField(upload_to='games_images/%Y/%m/%d',
verbose_name='Главное изображение', null=True)
url = models.SlugField(verbose_name='Название URL', default='eld', max_length=330,
unique=True)
date_games = models.ForeignKey('DateGames', on_delete=models.PROTECT)
genres = models.ForeignKey('Genres', on_delete=models.PROTECT)
def __str__(self) -> str:
return self.title
def get_absolute_url(self):
return reverse("view_games", kwargs={"slug": self.url})
Я лишнюю информацию убрал типа, оперативка, память, кароче лишние поля убрал чтобы вам глаза не мозолить! Заранее спасибо большое!