Ich habe folgendes Modell:NoReverseMatch Fehler 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})
In meinem Haupt urls.py habe ich die folgende URL:
url(r'^categories/', include('places.urls', namespace='categories')),
und in meiner app urls.py habe ich die folgende URL :
url(r'^(?P<slug>[\w-]+)/review/$', user_place_review, name='user_review'),
In einer Vorlage ich versuche, so etwas zu tun, was mir keine reverse Übereinstimmung Fehler gibt:
<a class="btn btn-primary btn-lg" href="{% url 'categories:user_review' %}">Write A Review!</a>
Der Blick auf die URL verknüpft ist:
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)
Ich bin nicht in der Lage, die Ursache des Fehlers zu finden.
Die instance.get_absolute_url nicht, wie ich habe nicht funktioniert (Slug)/Rezension hinzugefügt in meiner URL. Es wird mich auf der gleichen Seite halten und mich nicht zu/überprüfen – indexOutOfBounds
Vielen Dank. Die andere Option, in der wir den Slug von unserer Instanz übergeben, funktioniert – indexOutOfBounds
ok, erstelle eine weitere Methode für absolute URL der Überprüfung und es wird auch funktionieren – Aniket