【发布时间】:2018-09-13 16:53:05
【问题描述】:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
name = models.CharField(max_length=40, blank=True)
bio = models.TextField(max_length=500, null=True, blank=True)
def get_absolute_url(self):
return reverse('userprofile:to_profile', args=[str(self.user.username)])
所以我制作了这个模型以将其保存为whatever.com/userprofile:to_profile/thisisusername
在网址上,我有
path('accounts/profile/<username>/', ProfileDetailView.as_view(), name="to_profile"),
对于视图,我有
class ProfileDetailView(DetailView):
model = Profile
template_name = "account/profile.html"
我确实知道默认的 DetailView 需要 pk 和 slug 但每当我尝试传递用户名时
pk_url_kwarg = "username"
我收到一个错误
invalid literal for int() with base 10
无论如何我们可以将用户名用于通用详细视图吗?还是pk是唯一的出路?
【问题讨论】: