2016-11-02 5 views
0

私は数日間この問題を抱えており、何の答えも見つけられませんでした。基本的には、もし私が望むならば、/私のプリントを望んでいる/ urlにしたい。引数 '()'およびキーワード引数がない ''のために反転します。 Django

正規表現が間違っている可能性があり、変更が必要になることは理解していますが、ここに私のコードがあります。

MYPROJECT/urls.py

url(r'^(?P<pk>)/$', views.page_detail, name='page_detail'), 

それはライン5 function_list.html

page_detail

{% extends 'wiki/base.html' %} 

{% block content %} 
{% for page in pages %} 
    <h1><a href="{% url 'page_detail' pk=page.pk %}">{{ page.function }}</a></h1> 
    <p>{{ page.usage|linebreaksbr }}</p> 
{% endfor %} 
{% endblock %} 

views.py

def page_detail(request, pk): 
    page = get_object_or_404(Page, pk=pk) 
    return render(request, 'wiki/page_detail.html', {'page': page}) 

にエラーをスロー0

特定のエラーは、誰もが私が私を見てのための任意のアイデアやリソースを持っている場合は、それを感謝

Reverse for 'page_detail' with arguments '()' and keyword arguments '{'pk': 'print'}' not found. 1 pattern(s) tried: ['page/(?P<pk>)/$'] 

です。

編集:あなたの質問からページモデル

models.py

class Page(models.Model): 
    function = models.CharField(max_length=100, primary_key=True) 
    usage = models.CharField(max_length=200) 
    author = models.CharField(max_length=100) 
    library = models.CharField(max_length=100) 
    parameters = models.TextField() 
    returnValues = models.CharField(max_length=100) 
    examples = models.TextField() 
    notes = models.TextField() 
    seeAlso = models.TextField() 

答えて

2

が含まれ、あなたがそのビューを指して複数のURLを持っているようです。したがって、重複したURLを削除してください。それが問題でない場合は、urlを介して "object id"を正しく渡していることを確認してください。 「オブジェクトID」(?P<pk>\d+)は、DetailViewへのURLの必須パラメータです。

url(r'^(?P<pk>\w+)/$', views.page_detail, name='page_detail'), 
#    ^^^ 

\w+は英数字と現在のコンテキストで'print'と一致しますアンダースコア、一致する文字セットである:

+0

これはそれでしたが、今私はどのようにホームページに行っていますか?私はotehrのURLを削除した後、私は404を取得します。私はURLを削除しました(r '^ $'、views.functions_list、name = 'functions_list')、 – Kenton

+0

ホームページに別のURLを使用してください。私の提案は、TemplateViewを使用して、同じものに対して一意の名前を付けることです。それでおしまい。ハッピーコーディング –

+0

ありがとうyouveは大きな助けになった – Kenton

1

は、あなたは、あなたの正規表現に渡していたPKを一致させる必要があります。

関連する問題