我正在创建一个网站,其中每个用户都有一个关联的Profile实例,因为我希望User模型只处理与身份验证相关的用户功能,而Profile模型则用于处理其他所有内容(例如用户上传的图像等)。 )Profile有一个User OneToOneField。但是,我希望能够使用url模式site / profile / [username] /访问每个配置文件的详细信息页面。如果没有在User和Profile模型中存储用户名,这是不可能的,因为Profile DetailView的slug_field必须是Profile的主键,用户名是User的字段。如果没有将用户名存储在两个不同的地方,有没有办法做到这一点?
答案 0 :(得分:2)
不需要。你可以这样试试。
在urls.py
from .import views
url(r'^(?P<usernameslug>[-_\w]+)/detail/$',views.detailprofile)
假设模型
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
. . . .
. . . .
观看
def detailprofile(request,usernameslug):
profile=Profile.objects.get(user__username=usernameslug)