Django用表单添加到数据库

时间:2017-01-22 03:40:42

标签: python django database python-2.7 model-view-controller

我尝试使用表单添加到我的数据库(这是一个大学列表),但它无法正常工作。知道为什么吗?它将我带到了成功页面,但实际上没有将它添加到数据库

型号:

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>

我错过了什么吗?

1 个答案:

答案 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')