在django中获取用户定义的URL

时间:2012-07-23 22:21:39

标签: django django-urls

我想在我的应用中添加一种方式让用户创建自己的网址。所以,我的意思是,如果用户想要访问他们的网页,他们可以转到http://www.projectdomain.com/JimmyJohn

在我的模特中我有

class Person(models.Model):
    username = models.CharField(max_length=30)  #username = JimmyJohn
    ....

通过添加一个方法来捕获/ urls.py之后的所有内容,这是最好的方法吗?或者有没有办法将我的模型与urls.py

进行更紧密的整合

1 个答案:

答案 0 :(得分:4)

只需在您的主urls.py中添加一个网址,接受第一个字母参数(考虑在此上添加您应用的任何其他网址,并验证用户名,以便您的网址不是有效的用户名):

urlpatterns = patterns('',
    # ... other fixed urls before
    url(r'^(\w+)/$', 'website.views.user_page', name='user_page'),
)

然后在视图中查询与给定用户名匹配的用户:

def user_page(request, username):
    user = get_object_or_404(User, username=username)
    return render(...)