我试图在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数据库浏览器进行了检查。添加了具有相应列的表。请帮忙。非常感谢提前。
答案 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/')