私は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>
あなたが言ったように書いていますが、残念ながら私はちょっとした差異だけで同じミスを抱えています。django.urls.exceptions.NoReverseMatch: 'extract_edit'を引き数 '()'とキーワード引数 '{' pk ':' A4A49247-B940-450C-8E1E-2F8148CB0933 '}'が見つかりません。 1つのパターンが試されました:['crud/edit /(?P \\ d +)$'] –
ところで、私の投稿の編集部分でコードを使用した場合、私は同じエラーが発生します。もう一度投稿をチェックできますか?私は問題がここにあると思う 'edit /(?P \ d +)$'私のpkはあなたが見ているようにここではuniqueidentifierです。 –
@NurzhanNogerbekあなたのパターンで正規表現を変更しようとします: '\ d +'の代わりに '[a-zA-Z0-9 _ \ - ] +'を使用してください。 – neverwalkaloner