, this is my html page
{% extends 'base.html' %}
{% block title %} my todo{% endblock title %}
{% block container %}
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
{% load static %}
<link rel="stylesheet" href="{%static 'css/styles.css'%}">
<body class="or">
<!--{{ form.as_p }}-->
<!-- <div class="inputcon">
<input type="text" id="TITLE" class="Title" name="TITle" required>
<label for ="TITLE">Title</label>
</div>-->
{% load widget_tweaks %}
<div django-app="Taskmanager">
<div class="container">
<div class="content">
<h1>TODOAPP</h1>
<p class="tagline"> a Django todo app</p>
<form class="horizon" action="{% url 'new_todo' %}" method="POST" class="form-horizontal">
{% csrf_token %}
<div class="raw">
<label>Name :</label>
{% render_field form.name type="name" class="taged" title="user name" %}
</div>
{% render_field form.description rows="10" cols="40" title="what do you need to do!" %}
{% render_field form.time_added type="date" %}
{% render_field form.due_date type="date" %}
<div class="row">
<button class="Add" name="addtask" type="submit">
<i class="fa fa-plus icon"></i>ADD TASK
</button>
<button class="taskdel" name="Delete" formnovalidate="" type="submit" onclick="$('input').click();"><i class="fa fa-trash-o icon"></i>Delete Tasks</button>
</div>
<ul class="taskList">
{% for todo in todos %} <!-- django template lang - for loop -->
<li class="taskItem">
<input type="checkbox" class="taskCheckbox" name="checkedbox" id="{{ todo.id }}" value="{{ todo.id }}">
<label for="{{ todo.id }}"><span class="complete-">{{ todo.title }}</span></label>
<strong class="taskDate"><i class="fa fa-calendar"></i>{{ todo.created }} - {{ todo.due_date }}</strong>
</li>
{% endfor %}
</ul>
</form>
</div>
</div>
</div>
</body>
{% endblock container %}
AND THIS IS MY VIEWS
def new_todo(request):
todos = TodoApp.objects.all()
if request.method == 'POST':
if "taskadd" in request. POST:
name = request.POST["name"]
description = request.POST["description"]
date = str(request.POST["date"])
content = name + "--" + date +" " + description
Todo = TodoApp(name=name, content=content, due_date=date, description=description)
Todo.save()
return redirect("/")
if "taskDelete" in request.POST:
checkedlist = request.POST["checkedbox"]
for todo_id in checkedlist:
todo = TodoApp.objects.get(id=int(todo_id))
todo.delete()
return redirect("/")
return render(request, 'apptodo/new_todo.html', {'todos': todos})
BUT I KEPT GETTING ‘STR’ OBJECT HAS NO ATTRIBUTE FIELD