Django:模型,视图和模板

时间:2014-06-05 15:02:09

标签: python django django-models

我试图在Django做一件非常简单的事,但因为我是一个新手而陷入困境。基本上,在我网站的医生页面上,我试图添加一个字段,用户可以输入该医生的等待时间。为此,我在models.py中编写了以下模型:

class WaitingTime(models.Model):
    doctor = models.ForeignKey(Doctor)
    user = models.OneToOneField(User, unique=True)
    time = models.IntegerField("Waiting Time", max_length=2)

在此之后我写了以下观点:

def WaitingTime(request):
    if request.method == 'POST': 
        form = WaitingTime(request.POST)
        if form.is_valid():
            doctor = form.cleaned_data['doctor']
            user = form.cleaned_data['user']
            time = form.cleaned_data['time']
            return HttpResponseRedirect('/thanks/') 
    else:
        form = WaitingTime()

这种观点是我最不确定的部分。虽然我已经完成了2个教程,但是当我必须编写这个视图时,我感觉自己就像一个完整的菜鸟。

然后,我将此代码添加到我的模板中:

<h4>Please enter the waiting time that you experienced for this doctor.</h4>
<form action="/WaitingTime/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="hidden" name="doctor" value="{{ doctor.name }}" />
<input type="hidden" name="user" value="{{ user.username }}" />
WaitingTime: <input type="text" name="time"><br>
<input type="submit" value="Submit" />
</form>

基本上,我在将数据从前端添加到我的数据库时遇到了麻烦,这非常简单和基本。我已经运行了python manage.py syncdb并使用SQLite数据库浏览器进行了检查。添加了具有相应列的表。请帮忙。非常感谢提前。

1 个答案:

答案 0 :(得分:4)

为了对数据库进行更改,您的视图需要更改为 -

def WaitingTime(request):
    if request.method == 'POST': 
        form = WaitingTimeForm(request.POST) #class specified in forms.py
        if form.is_valid():
            doctor = form.cleaned_data['doctor']
            user = form.cleaned_data['user']
            time = form.cleaned_data['time']
            WaitingTimeObject = WaitingTime(doctor=doctor, user=user, time=time)
            WaitingTimeObject.save()
            return HttpResponseRedirect('/thanks/')