je le modèle suivant:NoReverseMatch erreur Django
class UserPlaceReview(models.Model):
place = models.ForeignKey(PlaceReview)
review = models.TextField()
def __str__(self):
return self.review
class PlaceReview(models.Model):
name = models.CharField(max_length=150)
location = models.CharField(max_length=250)
image = models.ImageField(upload_to = image_upload_location,null=True, blank=True)
category = models.ForeignKey(Categories)
slug = models.SlugField()
timestamp = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("categories:detail", kwargs={"slug": self.slug})
Dans mon principal urls.py je l'adresse suivante:
url(r'^categories/', include('places.urls', namespace='categories')),
et dans mon application urls.py je l'adresse suivante :
url(r'^(?P<slug>[\w-]+)/review/$', user_place_review, name='user_review'),
Dans un modèle que je suis en train de faire quelque chose comme ce qui me donne un pas d'erreur de correspondance inversée:
<a class="btn btn-primary btn-lg" href="{% url 'categories:user_review' %}">Write A Review!</a>
La vue liée à l'url est:
def user_place_review(request,slug):
place = PlaceReview.objects.get(slug=slug)
form = UserPlaceReviewForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
review = form.cleaned_data['review']
instance.place = place
instance.review = review
instance.save()
return redirect('/')
context = {
"form": form,
}
return render(request,"places/user_review.html", context)
Je suis incapable de trouver la cause de l'erreur.
Le instance.get_absolute_url ne fonctionne pas comme je l'ai (limace)/avis ajouté dans mon URL. Il me gardera sur la même page et ne m'amènera pas à/revoir – indexOutOfBounds
Merci beaucoup. L'autre option dans laquelle nous passons le slug de notre instance fonctionne – indexOutOfBounds
ok, créez une autre méthode pour l'URL absolue de révision et cela fonctionnera aussi – Aniket