Django中的命名组基于模型字段?

时间:2015-05-15 03:52:53

标签: regex django django-models django-views

我试图复制一个等同于:

的url正则表达式
url(r'^members/(?P<username>\w+)/$', 'profiles.views.single'),

虽然我知道我正在从我的数据库中获取用户:

from django.contrib.auth.models import User

我想知道我是否可以将其改为更独特的东西。我一直在阅读来自https://docs.djangoproject.com/en/1.8/intro/tutorial04/的文档,但我仍然迷失了。

我的问题是关于我是否可以将模型中的数据用作正则表达式中的命名组。

示例:

from django.db import models
from django.contrib.auth.models import User

class Address(models.Model):
    user = models.ForeignKey(User)
    unique_code = models.IntegerField(max_length = 5)
    active = models.BooleanField(default = True)

以某种方式可以使用'unique_code'字段作为我的正则表达式中的可能网址来映射:

 url(r'^members/(?P<unique_code>\w+)/$', 'profiles.views.single'),

我正在尝试这样的事情,但显然不起作用:

def single(request, unique_id):
    try:
        uid = get_object_or_404(Address, unique_id=unique_id)
        final = uid
    except:
        raise Http404

    return render_to_response('single_user.html', locals(), context_instance=RequestContext(request))

1 个答案:

答案 0 :(得分:1)

尝试使用unique_code

替换函数中的unique_id
def single(request, unique_code):
try:
    uid = get_object_or_404(Address, unique_code=unique_code)
    final = uid
except:
    raise Http404

return render_to_response('single_user.html', locals(), context_instance=RequestContext(request))