我正在观看一个YouTube教程,演示了如何在所述对象的详细视图的URL中使用模型对象的id,并试图应用相同的概念通过用'slug'(我的模型slug字段的名称)替换所有的'id'到slug字段。然而,这只是碰巧弹出一个错误 - 在/仪表板Django - 模型对象的Slug字段没有被应用到URL
NoReverseMatch /反向的“活动细节”与 参数“(”“)”和关键字参数‘{}’未找到。 1个图案(多个) 尝试:[ '(?I)仪表板/广告活动/(ΔP/塞[ - \ W \ d] +)/ $']
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'在最后一个模板到达?什么是发送它? –
只是一个快速提示:而不是检查每个视图,如果用户登录只使用djangos装饰@login_required ... – Jingo
@DanielRoseman你是什么意思,我可以问吗?自从在我的views.py中将'slug'作为'slug = campaignprofile.slug'作为一个变量存在于我的视图中后,但是这似乎仍然引发了与之前相同的NoReverseMatch错误。 – jayt