我尝试使用表单添加到我的数据库(这是一个大学列表),但它无法正常工作。知道为什么吗?它将我带到了成功页面,但实际上没有将它添加到数据库
型号:
class College(models.Model):
college_name = models.CharField(max_length=120)
logo = models.ImageField(upload_to="logos", default="logos/default.png")
def __str__(self):
return self.college_name
@classmethod
def create(cls, college_name):
college = cls(college_name = college_name)
return college
查看:
def add(request):
return render(request, 'app/add.html')
def add_college(request):
school = request.POST.get('collegename_input', '')
College.create(school)
return HttpResponseRedirect('add_success')
def add_success(request):
return render(request, 'app/add_success.html')
add.html:
<h2> Add your school </h2>
<form action="{% url 'app:addcollege' %}" method="post">
{% csrf_token %}
<label for="collegename_input">School: </label>
<input type="text" id="collegename_input" name="collegename_input" />
<input type="submit" value="Add School" />
</form>
我错过了什么吗?
答案 0 :(得分:0)
您处理POST请求的视图看起来不正确,因为它没有正确创建/保存模型。要保存College
,您应该执行以下操作:
from django.shortcuts import redirect
def add_college(request):
school = request.POST.get('collegename_input', '')
# College.create(school)
college = College(school_name=school)
college.save()
return redirect('add_success')