私のプロジェクトには 2 種類の URL がありdomain.com/firstname.lastname
ますdomain.com/user_id
。
domain.com/13243 ====> domain.com/peter.norvig ====>13243 is read from database
これは私の urls.py ファイルのセクションです:
url(r'^(?P<first_name>\w+).(?P<last_name>\w+)(.)?(?P<queueNumber>\d+)?/$',views.nameDetailIndex, name="FLSocial"),
url(r'^(?P<user_id>\d+)/$', views.idDetailIndex, name="IDSocial")
誰かがURLを書いてEnterキーdomain.com/13243
を押すと、djangoが自動的user_id
にデータベースで見つけfirstname
てlastname
、URLをdomain.com/peter.norvigにリダイレクトするようにしたい私はプロジェクトでneo4django dbも使用しています
ここに私のviews.pyファイルがあります:
def nameDetailIndex(request, first_name, last_name, queueNumber=None):
try:
user = User.objects.filter(firstName=first_name, lastName=last_name)
if user:
if not queueNumber:
if len(user) > 1:
user = user[0]
else:
#start id counter from 1 not 0 because style of URL :D
user = user[int(queueNumber)-1]
else:
raise Http404
return render(request, 'social/public.html', {
'user': user
})
except:
raise Http404
def idDetailIndex(request, user_id):
user = User.objects.get(id=user_id)
return render(request, 'social/public.html', {
'user': user
})