【发布时间】:2021-05-01 13:34:13
【问题描述】:
我正在尝试加载一个模板来查看我的自定义 UserEntry 配置文件的详细信息。当我转到应该加载基于类的视图的 URL 时,我从 Django 收到此错误:
Reverse for 'UserProfile' with arguments '('',)' not found. 1 pattern(s) tried: ['user/profile/(?P<pk>[0-9]+)/$']
views.py:
class UserProfileView(DetailView):
model = UserEntry
template_name = 'userprofile_app/userprofile.html'
def get_context_data(self, *args, **kwargs):
users = UserEntry.objects.all()
context = super(UserProfileView, self).get_context_data(*args, **kwargs)
page_user = get_object_or_404(UserEntry, id=self.kwargs['pk'])
context['page_user'] = page_user
return context
urls.py:
urlpatterns = [
path('entry/', UserRegistrationView.as_view(), name='UserEntry'),
path('profile/<int:pk>/', UserProfileView.as_view(), name='UserProfile'),
]
模板:
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="{% url 'UserProfile' UserEntry.id %}">EDIT PROFILE</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
模型.py
class UserEntry(models.Model):
id = models.AutoField(primary_key=True, unique=True)
name = models.CharField(max_length=264)
【问题讨论】:
标签: django django-views django-templates django-urls