1
我有一个模板,显示发言人名称列表,我想要点击这些网址并进入发言者页面,我通过一个唯一的ID看起来是这样的 “832fc2ca-787f-484B-B815-f82959607311”,问题是,我得到的错误Django有一个意想不到的关键字参数'id_speaker'
get_speaker_by_id()得到了一个意想不到的关键字参数 'id_speaker'
我觉得问题在urls.py或speakers.html href中是ether。我看着每一个相关的问题,但我无法提交解决方案。
urls.py
url(r'^speakers', views.speakers_list, name='speakers'),
url(r'^speaker/(?P<id_speaker>[0-9a-z\-]+)/$',
views.get_speaker_by_id, name='get_speaker_by_id_url')
这是是扬声器名称的列表
speakers.html
{% for speaker in all_speakers_list%}
<div class="container">
<div class="row">
<div class="col-sm-6">
<a href="{% url 'get_speaker_by_id_url' speaker.speaker_id %}">{{ speaker.greek_name }}</a>
</div>
</div>
</div>
{% endfor %}
views.py
get_speaker_by_id(request, id_speaker):
''' Get speaker info by id '''
requested_speaker = Speaker.objects.get(speaker_id=id_speaker)
template = loader.get_template('greekparliament/speaker.html')
context = {
'requested_speaker': requested_speaker
}
return HttpResponse(template.render(context, request))
模型模板.py
class Speaker(models.Model):
speaker_id = models.CharField(max_length=200, default='')
english_name = models.CharField(max_length=200, default='', blank=True)
image = models.CharField(max_length=200, default='', blank=True)
email = models.EmailField(max_length=254, default='', blank=True)
wiki_el = models.URLField(max_length=200, default='', blank=True)
twitter = models.URLField(max_length=200, default='', blank=True)
greek_name = models.CharField(max_length=200, default='')
wiki_en = models.URLField(max_length=200, default='', blank=True)
website = models.URLField(max_length=200, default='', blank=True)
你可以确定你还没有在views.py文件中多次定义'get_speaker_by_id()'吗?您可能有多次定义'get_speaker_by_id()'的可能性,并且在第二次您没有定义任何'id_speaker'参数 –
是的!我不相信我犯了这个错误。非常感谢你。也许发布您的这个答案,以便我可以将其标记为解决方案? – kpapadop