ユーザーがTwitterを使用してログイン/認証できるようにするには、 TwitterAPIとOauthを使用する必要があります。既製のソリューションをお探しの場合は、そのまま使用できるRaymondPennersのdjango-allauthライブラリをご覧になることをお勧めします。このallauthチュートリアルを使用して、セットアップの基本を理解できます。
Twitterでallauthアプリケーションが機能するようになったらmodel
、メッセージ、メッセージが投稿された日時、そのメッセージの所有者などの情報を保存するを作成する必要があります。これを実現するための非常に単純なモデルは、次のようになります。
クラスMessage(models.Model):
"""
This is the message class that stores all the message
objects.
"""
message = models.TextField()
time_posted = models.DateTimeField(auto_now_add=True)
owner = models.ForeignKey(User)
モデルが完成したら、ユーザーが実際にメッセージを投稿するフォームが必要になります。フォームは、次のような単純なModelFormにすることができます。
MessageForm(forms.ModelForm):
"""
This is the base form for posting a message
"""
class Meta:
model = models.Message
fields = ('message')
次に、テンプレートをレンダリングするビューにフォームを渡す必要があります。多分このようなもの。同じビューで、メッセージの投稿も行うことができます。
def post_message(request):
form = forms.MessageForm()
if request.method == 'POST':
p_form = forms.MessageForm(request.POST)
if p_form.is_valid():
data = p_form.save(commit=False)
data.owner = request.user
data.save()
return redirect('/success/') # Redirect to a success page
else:
raise ValidationError('The Form did not validate')
return render_to_response('post_message.html', {'form' : form}, context_instance=RequestContext(request))
templates
次に、上記のビューが要求されると呼び出される「post_message」という名前のテンプレートを書き込む必要があります。非常に単純なテンプレートは次のようになります。
{% if form.errors %}
{{ form.errors %}
{% endif %}
<form action ="" method ="POST">
{% csrf_token %}
{{ form }}
<input type="submit" id="submit" value="Post Message" />
</form>
テンプレートの準備ができたら、urls.pyファイルで単純なURL(以下に定義されているもの)を使用して、要求されたURLをビューに接続できます。したがって、ユーザーが要求したときに上記のビューを呼び出す場合は、次のように言いますyourapp.com/post/
。
url(r'^post/$', 'yourapp.views.post_message', name="post"),
以上です。また、 Djangoの基本的なポーリングアプリケーションチュートリアルを実行して、djangoエンティティがどのように連携して機能するかを理解することをお勧めします。
上記の例がプロジェクトに役立つことを願っています。