2016-11-16 9 views
0

私はCRUDプロジェクトをDjangoに作成しようとしています。私は正常にMS SQL Serverのデータベースに接続し、私のモデルでも正常にマイグレーションを行いました。引数を指定して 'extraction_edit' '(' A4A49247-B940-450C-8E1E-2F8148CB0933ためurlの引数としてのuniqueidentifier | django

NoReverseMatch

リバース:私は、Webページ内のデータの一覧を表示しようとしたときに今、私は次のERRORを持っています'、)'およびキーワード引数 '{}' が見つかりません。 ['crud/edit/(?P<pk>\\d+)$']

を、私のテンプレートで間違っている何かを示しています:1つのパターン(複数可)を試みた

<a href="{% url 'crud:extraction_edit' extraction.id_extraction %}">edit</a> 
<a href="{% url 'crud:extraction_delete' extraction.id_extraction %}">delete</a> 

を誰かがこの問題を解決するために私を助けることができます!

urls.py

urlpatterns = (
    url(r'^edit/(?P<pk>\d+)$', views.ExtractionUpdate.as_view(), name='extraction_edit'), 
    url(r'^delete/(?P<pk>\d+)$', views.ExtractionDelete.as_view(), name='extraction_delete'), 
) 

extraction_list.html

<h1>Extractions list</h1> 
    <ul> 
     {% for extraction in object_list %} 
      <li>ExtractionID-{{ extraction.id_extraction }} Date-{{ extraction.name_extraction }} 
       <a href="{% url 'crud:extraction_edit' extraction.id_extraction %}">edit</a> 
       <a href="{% url 'crud:extraction_delete' extraction.id_extraction %}">delete</a> 
      </li> 
     {% endfor %} 
    </ul> 

    <a href="{% url 'crud:extraction_new' %}">New</a> 

models.py

class Extraction(models.Model): 
    id_extraction = models.CharField(db_column='ID_Extraction', max_length=36, primary_key=True) 
    name_extraction = models.CharField(db_column='Name_Extraction', max_length=150, blank=True, null=True) 

    class Meta: 
     managed = False 
     db_table = 'Extraction' 

EDIT:あなたが一つのキーワード引数PKを持っているあなたのURLPATTERN extraction_editで

model.py

def get_edit_url(self): 
    return reverse('extraction_edit', kwargs={'pk': self.id_extraction}) 

urls.py

<a href="{% url 'crud:extraction_edit' extraction.get_edit_url %}">EDIT</a> 

答えて

1

。しかし、あなたはそれをあなたのテンプレートに指定しませんでした。 代わりに、このような

<a href="{% url 'crud:extraction_edit' extraction.id_extraction %}">edit</a> 

書き換えhref属性の:

<a href="{% url 'crud:extraction_edit' pk=extraction.id_extraction %}">edit</a> 

ジャンゴdocからの引用:

キーワード引数がによって上書き、正規表現にマッチしたすべての名前付きグループ、で構成されていますdjango.conf.urls.url()のオプションのkwargs引数で指定された引数。

+0

あなたが言ったように書いていますが、残念ながら私はちょっとした差異だけで同じミスを抱えています。django.urls.exceptions.NoReverseMatch: 'extract_edit'を引き数 '()'とキーワード引数 '{' pk ':' A4A49247-B940-450C-8E1E-2F8148CB0933 '}'が見つかりません。 1つのパターンが試されました:['crud/edit /(?P \\ d +)$'] –

+0

ところで、私の投稿の編集部分でコードを使用した場合、私は同じエラーが発生します。もう一度投稿をチェックできますか?私は問題がここにあると思う 'edit /(?P \ d +)$'私のpkはあなたが見ているようにここではuniqueidentifierです。 –

+1

@NurzhanNogerbekあなたのパターンで正規表現を変更しようとします: '\ d +'の代わりに '[a-zA-Z0-9 _ \ - ] +'を使用してください。 – neverwalkaloner

関連する問題