要让用户使用 twitter 登录/验证,您需要使用twitter API和Oauth。如果您正在寻找现成的解决方案,我建议您查看 Raymond Penners 的django-allauth库,该库开箱即用。您可以使用这个allauth 教程来了解设置它的基础知识。
一旦你有 twitter 的工作 allauth 应用程序,你将需要创建一个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))
现在,您需要将一个名为“post_message”的模板写入您的模板templates
,一旦请求上述视图,该模板就会被调用。一个非常简单的模板将如下所示。
{% 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 实体是如何一起工作的。
希望以上示例对您的项目有所帮助。