我正在try 通过表单数据发送到我的数据库作为我的任务模型的新对象.当我点击提交按钮时,它只会将我重定向到我的其他页面,提交的数据不会发生任何变化,数据也不会保存到我的数据库中.我在多个来源寻找解决方案,但没有找到一个.我不喜欢这个话题,所以每个反馈都是很棒的.
我的问题:
- 我在哪里犯了错
- 如果我在admin.py(来自标题字段)中预先填充了slug字段,当我排除我的slug字段时,它是否会预先填充到表单中?
如能提供有用的知识来源,我将不胜感激.
Model.py
class Task(models.Model):
is_done = models.BooleanField(default=False)
title = models.CharField(max_length=100)
add_time = models.DateTimeField(auto_now_add=True)
deadline = models.DateTimeField()
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user")
slug = models.SlugField()
description = models.TextField()
Forms.py
from django import forms
from .models import Task
class TaskForm(forms.ModelForm):
class Meta:
model = Task
exclude = ["add_time", "is_done"]
模板模板
<form method="post" class="form" action="{% url 'add-task' %}">
{% csrf_token %}
<p>Title: {{ form.title }}</p>
<p>Deadline: {{ form.deadline }}</p>
<p>User: {{ form.user }}</p>
<p>Description: {{ form.description }}</p>
<button type="submit">Submit</button>
</form>
Views.py
def add_task(request):
if request.method == 'POST':
form = TaskForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect("/todolist")
form = TaskForm()
return render(request, "todolist/add_task.html", {"form": form})