我有以下型号:
body = gson.fromJson(reader, ...);
在我的主urls.py中,我有以下网址:
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})
在我的app urls.py中我有以下网址:
url(r'^categories/', include('places.urls', namespace='categories')),
在模板中,我试图做这样的事情,这给了我一个无反向匹配错误:
url(r'^(?P<slug>[\w-]+)/review/$', user_place_review, name='user_review'),
链接到网址的视图是:
<a class="btn btn-primary btn-lg" href="{% url 'categories:user_review' %}">Write A Review!</a>
我无法找到错误原因。
答案 0 :(得分:2)
更改此行
<a class="btn btn-primary btn-lg" href="{% url 'categories:user_review' %}">Write A Review!</a>
到
<a class="btn btn-primary btn-lg" href="{% url 'categories:user_review' slug=placereview_instance.slug %}">Write A Review!</a>
其中placereview_instance是您的模型对象。您在user_review
文件中使用slug关键字参数定义了urls.py
的URL。所以Django正在寻找模板中该url中的关键字参数slug。它找不到相同的内容,因此它没有找到反向匹配。
另外,您已经在get_absolute_url
中定义了models.py
。同样,您可以直接使用其他方法进行审核,然后在模板中使用
<a class="btn btn-primary btn-lg" href="{{ placereview_instance.get_review_absolute_url }}">Write A Review!</a>
答案 1 :(得分:0)
您必须为网址的args赋值。你的模板应该是这样的
<a class="btn btn-primary btn-lg" href="{% url 'categories:user_review' slug='your_parameter' %}">Write A Review!</a>
。