2017-08-02 9 views
2

私が構築しているDjangoモバイルWebアプリでは、特定のテンプレートのsms htmlタグを使用しています。私。典型的な<a href="sms:/* phone number here */?body=/* body text here */">Link</a>です。ユーザーがLinkを押すたびに、それらのメッセージは既定のSMSアプリケーションにリダイレクトされ、事前にメッセージが送信されます。クリック数を維持する<a>タグ(non-JS)

ユーザーがLinkをクリックするたびに増加するカウンタを実装するにはどうすればよいですか?課題は、Python/Django(サーバー側)のみを使用することです。JSはありません。

答えて

3

Linkでクリックをトラッキングするモデルを実装できます。トラッキングするには、クリックトラッキング後にsms URIにリダイレクトするリダイレクトビューのようなものを作成できます。

基本的な例は次のようになります。デフォルトHttpResponseRedirectBaseことで

from django.http.response import HttpResponseRedirect, HttpResponseRedirectBase 

HttpResponseRedirectBase.allowed_schemes += ['sms'] 

class SMSRedirect(HttpResponseRedirect): 
    pass 

def track_count(request): 
    phone = request.GET.get('phone', '') 
    body = request.GET.body('body', '') 
    link = build_sms_link(phone, body) 
    link.hits += 1 
    link.save() 
    return SMSRedirect(link.url) 

は、非Webスキーム/プロトコルを許可していません。許可されたスキームリストを猿でパッチすることで許可することができます。

関連する問題