モデルオブジェクトのidをそのオブジェクトの詳細ビューのURLに使用する方法を示したYouTubeチュートリアルを見ていて、同じ概念を適用しようとしましたすべての 'id'を 'slug'(私のモデルスラッグフィールドの名前)に置き換えることによって、スラッグフィールドに移動します。 /ダッシュボード/時モデルオブジェクトのDjango - SlugフィールドがURLに適用されていない
NoReverseMatch 引数付き「キャンペーン-詳細」「(」「」)とキーワード引数 『{}』が見つかりませんのリバース - しかし、これは単にエラーを持ち出すために起こります。 1つのパターン(S) 試してみました:[ '(?I)ダッシュボード/キャンペーン/(?P /スラッグ[ - D] + \ W \)/ $']
views.py:
def campaign_detail(request, campaignprofile_slug):
if request.user.is_authenticated:
campaignprofile = get_object_or_404(CampaignProfile, slug=campaignprofile_slug)
return render(request, 'campaign-detail.html', {'campaignprofile': campaignprofile, 'slug': slug})
else:
return redirect('/users/login/next?=')
urls.py:私は、ディスプレイにしようとしているモデルオブジェクトの
url(r'^campaigns/(?P<slug>[-\w\d]+)/$', views.campaign_detail, name='campaign-detail')
models.py:
class CampaignProfile(models.Model):
user = models.ForeignKey(UserModel, related_name='campaignprofile', on_delete=models.CASCADE, null=True)
campaign_title = models.CharField(max_length=50, verbose_name='Title')
slug = models.SlugField(unique=True, blank=True, null=True)
HTMLテンプレートのhrefタグ:
<a href='{% url "campaign-detail" slug %}'></a>
この問題の潜在的な解決方法は素晴らしいと思います。
に
'slug': slug
の名前を変更?それは何を送信していますか? –ちょっとしたヒント:ユーザーがログインしている場合は、すべてのビューをチェックインするのではなく、djangosデコレータ@login_requiredを使用してください。 – Jingo
@DanielRosemanどういう意味ですか?私は 'slug'を私のviews.pyの変数 'slug = campaignprofile.slug'として変数に入れていますが、以前と同じNoReverseMatchエラーが発生しているようです。 – jayt