Shobhit Srivastava
Shobhit Srivastava

Reputation: 549

Python. Django1.7 DoesNotExist. Matching query does not exist

I'm a learner in Python and Django. I am trying to pass selected checkboxes to my views and then make a get() call to fetch related objects, but keep getting the error DoesNotExist, even though the object is present in the database.

I tried changing the get() parameters but it still shows the same error, as if it just cannot fetch the database. Please help!

ERROR IS IN THE #ed LINE

Here is my 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})

And, my 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>

I am clueless on how to proceed further and it'd be great help if this issue can be resolved. Thanks in advance!

Upvotes: 0

Views: 690

Answers (1)

PythonIsGreat
PythonIsGreat

Reputation: 7927

Well your get looks jacked up.

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

should probably be something like this.

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

You could probably do this to...

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

Upvotes: 1

Related Questions