蟒蛇。 Django1.7 DoesNotExist。匹配查询不存在

时间:2015-04-28 21:41:01

标签: python django

我是Python和Django的学习者。 我试图将选定的复选框传递给我的视图,然后进行get()调用以获取相关对象,但不断收到错误DoesNotExist,即使该对象存在于数据库中。

我尝试更改get()参数,但它仍然显示相同的错误,就好像它无法获取数据库一样。请帮忙!

错误在#ed LINE

这是我的views.py

def manage(request):
    if request.POST.get('taskname'):
        name = request.POST.get('taskname')
        end = request.POST.get('enddate')
        emp = User.objects.get(username = request.user.username)
        print emp.username
        try:
            newtask = Task(taskname = name, deadline = end, status = 'incomplete', empid = emp)
            newtask.save()
        except:
            print "not saved"
        my_tasks = Task.objects.filter(empid = emp)
        return render(request, 'ellipse/dashboard.html', {'employee': emp, 'tasks': my_tasks})

    else:
        selected = request.POST.get('dropdown')
        if selected == 'Delete':
            tasks = request.POST.getlist('t')
            emp = User.objects.get(username = request.user.username)
            for seltask in tasks:
                #deltask = Task.objects.get(taskname=seltask)
                deltask.delete()
            my_tasks = Task.objects.filter(empid = emp)
            return render(request, 'ellipse/dashboard.html', {'employee': emp, 'tasks': my_tasks})

而且,我的HTML:

<div>
    <form action="/ellipse/manage/" method="post">
        {% csrf_token %}
        <p>Taskname <input type="text" name="taskname"></p>
        <p>Deadline <input type="date" name="enddate"></p>
        <select name="dropdown">
              <option selected="selected" disabled>Select action :</option>
                  <option value="Add">Add</option>
                  <option value="Delete">Delete</option>
                  <option value="Mark as complete">Mark as complete</option>
                  <option value="Mark as incomplete">Mark as incomplete</option>
        </select>
        {% if tasks %}
            {% for tasko in tasks %}
                <p><tr><td><input type="checkbox" name="t" value={{ tasko.taskname }}/></td><td>{{ tasko.taskname }}</td><td>{{ tasko.deadline }}</td><td>{{ tasko.status }}</td></tr></p>
            {% endfor %}
        {% endif %}
        <p><button type="submit" name="modify">Modify</button></p>
    </form>
</div>

我对如何进一步行动毫无头绪,如果能够解决这个问题,那将会很有帮助。提前谢谢!

1 个答案:

答案 0 :(得分:0)

嗯,你的看起来很高兴。

emp = User.objects.get(username = request.user.username)

应该是这样的。

<强> emp = User.objects.get(id=request.user.id)

你可能会这样做......

emp = User.objects.get(user=request.user)