我使用的是Django 1.6和sqlite3。我有一个包含投票分数和录入日期的文本条目数据库。
网页
在网页上,条目分类并显示在三个表格中;最新条目,最高投票条目和最低投票条目。我想继续将文本输入,投票和表格显示在一个html页面上。
条目代码
我的代码现在可以输入文本到数据库,起始投票为0,当前日期时间。目前这不使用表单,因为我被告知它对我想做的事情有点过分,而且表单似乎也更喜欢多个html模板页面。
没有表格
也许因为我没有使用表单,输入新文本并按回车键不会导致主视图刷新。此外,多人会使用该网站,因此当有人向数据库添加条目时,理想情况下会刷新。
我试图查看在条目进入数据库时我可以在何处以及如何插入代码进行刷新。也许这是一个命令,在视图中添加请求进来 - 但是我无法使数据可以呈现。
我对此很新,如果你能指出我正确的概念方向,我将不胜感激......
这是我拥有的;
网址
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^i/$', 'entries.views.index'),
url(r'^add/$', 'entries.views.add'),
)
视图
from django.shortcuts import render
from django.http import HttpResponse
from entries.models import Entry
from django.db import models
from datetime import datetime
from django.utils import timezone
def index(request):
context = {
'latest_entry_list': Entry.objects.order_by('-pub_date')[:10],
'high_entry_list': Entry.objects.order_by('-score')[:10],
'low_entry_list': Entry.objects.order_by('score')[:10],
}
return render(request, 'entries/index.html', context);
def add(request):
created_date = default=datetime.now()
created_score = '0'
created_text = request.GET.get('text')
e = Entry(text=created_text, score=created_score,pub_date=created_date)
e.save()
return HttpResponse('done')
getit.js
console.log("hi from js");
$(document).ready(function() {
$("#input").bind("keypress", function(e) {
if (e.keyCode == 13) {
var text = $("#input").val();
var args = {'text':text};
$.get("/add/", args).done(function(data) {
console.log("message: " + data);
});
}
});
});
的index.html
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<ul>
{% for entry in latest_entry_list %}
<li><a href="/entries/{{ entry.id }}/">{{ entry.text }}  {{ entry.score }}</a></li>
{% endfor %}
</ul>
<ul>
{% for entry in high_entry_list %}
<li><a href="/entries/{{ entry.id }}/">{{ entry.text }}  {{ entry.score }}</a></li>
{% endfor %}
</ul>
<ul>
{% for entry in low_entry_list %}
<li><a href="/entries/{{ entry.id }}/">{{ entry.text }}  {{ entry.score }}</a></li>
{% endfor %}
</ul>
<style type="text/css" media="screen">
div h2 span { color: #ff0000; }
div span { color: #00ff00; }
#box { width: 400px; height: 400px; }
#h { color: #ff0000; }
</style>
<h3 id="h">title</h3>
<p>message: {{ text }}</p>
<input type="text" name="text" value="" id="input"/>
<script type="text/javascript" src="{{STATIC_URL}}getit.js"></script>