Django

Djangoで”Either provide a url or define a get_absolute_url method on the Model.”と出たとき

DjangoのCreateView, UpdateViewを利用していると”ImproperlyConfigured Either provide a url or define a get_absolute_url method on the Model.”

と表示される時があります。この場合の解決法について記載します。

 

以下のような画面が表示されます。

Create, Updateした後に、遷移先がないことによるエラーです。

 

これは、画面上にエラーが出るのみで実際にDBを確認するとCreate, Updateされています。

 

この画面上のエラーをなくすには、models.pyにget_absolute_url(self)関数を定義してdjango.urls.reverseを使ってCreate, Update後の遷移先を指定すればよいです。

 

以下のように記述します。

  • models.py

このように設定するとCreate, Update後にbasic_app:detail/pk=self.pkに遷移してくれるようになりエラーがなくなります。