Search code examples
pythonformsvalidationtypeerrorcs50

TypeError : '>' not supported between instances of 'int' and 'str' on form


I'm learning python from cs50 web programming Edx and working on form adding tasks. The code is adding tasks if form is valid , if not then back to the page at (server side validation).

I'm using Python3.

My code:



# created two form inputs 
class NewTaskForm(forms.Form):
    task = forms.CharField(label="Task/kaam")
    priority = forms.IntegerField(label="Priority", min_value=1, max_value="8")

# to show the added tasks
def index(request):
    return render(request, "tasks/index.html", {'tasks': tasks})


# to add the task 
def add(request):
    if request.method == "POST":
        form = NewTaskForm(request.POST)
        if form.is_valid():
            task = form.cleaned_data["task"]
            tasks.append(task)
        else:
            return render(request, "tasks/add.html", {"form": form})

    return render(request, "tasks/add.html",
                  {"form": NewTaskForm()}
                  )

Solution

  • you used a string here:

    # created two form inputs 
    class NewTaskForm(forms.Form):
        task = forms.CharField(label="Task/kaam")
        priority = forms.IntegerField(label="Priority", min_value=1, max_value="8") #<--- max_value="8"
    
    

    try:

    # created two form inputs 
    class NewTaskForm(forms.Form):
        task = forms.CharField(label="Task/kaam")
        priority = forms.IntegerField(label="Priority", min_value=1, max_value=8)
    
    # to show the added tasks
    def index(request):
        return render(request, "tasks/index.html", {'tasks': tasks})
    
    
    # to add the task 
    def add(request):
        if request.method == "POST":
            form = NewTaskForm(request.POST)
            if form.is_valid():
                task = form.cleaned_data["task"]
                tasks.append(task)
            else:
                return render(request, "tasks/add.html", {"form": form})
    
        return render(request, "tasks/add.html",
                      {"form": NewTaskForm()}
                      )