0

このエラーが発生したとき、URL - HTML - ビュー - モデルの関係を学んでいないことに気づきました。まず、コードを表示させてください。

これは私のviews.pyです:

def category_detail(request, category_name):
    links = Link.objects.filter(category__name=category_name)
    return render_to_response("category_detail.html", {"links":links}, context_instance=RequestContext(request))

これはmodels.pyです:

class Category(models.Model):
    name = models.CharField(_("Category"), max_length=255)
    user = models.ManyToManyField(User)

    def __unicode__(self):
        return "%s %s" %(self.user, self.name)

    def admin_names(self):
        return ', '.join([a.username for a in self.user.all()])
    admin_names.short_description = "User Names"

    def get_absolute_url(self):
        return "/category/%s" % self.name


class Link(models.Model):
    user = models.ForeignKey(User)
    posted_at = models.DateTimeField(auto_now_add=True)
    url = models.URLField()
    title = models.CharField(max_length=255, null=True, blank=True)
    category = models.ForeignKey(Category)

    def __unicode__(self):
        return "%s %s %s" %(self.url, self.title, self.category)

これは HTML ページです:

<div id="profilemenu">
    index<p>
    {% for category in categories %}
        <p><a href="{% url 'category_detail' category.name %}">{{category.name }}</a>
    {% endfor %}
    <p>

</div>

および urls.py:

 url(r'^category/(?P<category_name>.*)', 'link.views.category_detail', name="category_detail"),

カテゴリ名をクリックして category_detail.html を開くと、ブラウザの URL は次のようになります。

http://127.0.0.1:8000/category`/ 

カテゴリ名が取得できません。私の愚かな間違いを教えてください。:\ お時間いただきありがとうございます。

4

2 に答える 2

0

URL で名前空間を使用している場合は、テンプレートで引用符なしで参照する必要があります。

<p><a href="{% url category_detail category.name %}">{{category.name }}</a>

注: 名前空間が完全修飾されていることを確認する必要があります。名前空間が埋め込まれている場合は、それらを で区切る必要があります:

<p><a href="{% url first_namespace:second_namespace:category_detail category.name %}">{{category.name }}</a>

うまくいけば、これで問題が解決します。

于 2013-10-13T14:45:35.377 に答える
0

get_absolute_url参照に従う必要があります:

def get_absolute_url(self):
    from django.core.urlresolvers import reverse
    return reverse('link.views.category_detail', args=[str(self.name)])

html

<a href="{{ category.get_absolute_url }}">{{ category.name }}</a>
于 2013-10-13T14:49:08.470 に答える