我正在尝试将url中的外键pk称为参数,如:
{% for msg in msgs %}
<li>
<a href="{% url 'home' msg.user.pk %}">Go</a>
...
</Li>
{% endfor %
但它失败了。而不是,如果我在模板中使用 {{msg.user.pk}} ,它可以工作,我可以看到pk。
模型是:
class Message(models.Model):
text = models.CharField(...)
user = models.ForeignKey(User, ...)
的url:
url(r'^home/(?P<pk>[0-9]+)/$', views.home, name='home'),
查看:
def home(request, pk):
user = get_object_or_404(User, pk=pk)
if request.method == 'GET':
messages.info(request, 'Hello ' + user.username)
...
def messages_list(request):
msgs = Message.objects.all()
return render(request, 'messages.html', context={'msgs': msgs'})
错误:
Reverse for 'home' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['home/(?P<pk>[0-9]+)/$']