数据库中的待办事项列表项目更新不适用于 Django
To Do List item update in database not working with Django
我想完成我的待办事项应用程序。但是,我仍然无法正确编辑项目。我的想法是通过选择特定项目并用 .save()
覆盖其信息来更新数据库。有人能找到正确的 update()
函数来让它工作吗?
这是我的代码:
urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("<int:aufgabenzettel_id>", views.details, name="details"),
path("add/", views.add, name="add"),
path("delete/<int:aufgabenzettel_id>", views.delete, name="delete"),
path("edit/<int:aufgabenzettel_id>", views.edit, name="edit"),
path("update/<int:aufgabenzettel_id>", views.update, name="update")
]
models.py
from django.db import models
# Create your models here.
class Aufgabenzettel(models.Model):
Aufgabeselbst = models.CharField(max_length=64)
def __str__(self):
return f"{self.Aufgabeselbst}"
views.py
from django.http.response import HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from .models import Aufgabenzettel
# Create your views here.
def index(request):
return render(request, "aufgabenzettel/index.html", {
"Aufgabenliste":Aufgabenzettel.objects.all()
})
def details(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/details.html", {
"details":aufgabenzettel
})
def add(request):
if request.method == "POST":
Aufgabe = request.POST["Hinzufügen"]
Aufgabenzettel.objects.create(Aufgabeselbst=Aufgabe)
return HttpResponseRedirect(reverse("index"))
return render(request, "aufgabenzettel/add.html")
def delete(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
aufgabenzettel.delete()
return HttpResponseRedirect(reverse("index"))
def edit(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/edit.html", {
"details":aufgabenzettel
})
def update(request, aufgabenzettel_id):
if request.method == "POST":
Aufgabe = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
Aufgabejetzt = request.POST["Bearbeiten"]
Aufgabejetzt.save()
return HttpResponseRedirect(reverse("index"))
else:
Aufgabe = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/edit.html", {
"details":Aufgabe
})
index.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>Meine Aufgaben</h1>
<ol>
{% for Aufgabeselbst in Aufgabenliste %}
<li>
<a href="{% url 'details' Aufgabeselbst.id %}">
{{ Aufgabeselbst }}
</a>
<form action="{% url 'delete' Aufgabeselbst.id %}" method="post">
{% csrf_token %}
<button type="submit">Löschen</button>
</form>
<form action="{% url 'edit' Aufgabeselbst.id %}" method="post">
{% csrf_token %}
<button type="submit" value="{{ details }}">Bearbeiten</button>
</form>
</li>
{% endfor %}
</ol>
<h2>
<a href="{% url 'add' %}">Neue Aufgabe erstellen</a>
</h2>
{% endblock %}
add.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>Füge eine neue Aufgabe hinzu</h1>
<form action="{% url 'add' %}" method="post">
{% csrf_token %}
<input type="text" name="Hinzufügen" placeholder="Neue Aufgabe">
<button type="submit">Hinzufügen</button>
</form>
{% endblock %}
edit.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<form action="{% url 'update' details.id %}" method="post">
{% csrf_token %}
<input type="text" name="Bearbeiten" value="{{details}}">
<button type="submit">Bearbeiten</button>
</form>
<a href="{% url 'index' %}">Zurück zu Aufgabe</a>
{% endblock %}
details.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>{{ details }}</h1>
<a href="{% url 'index' %}">Zurück zu Aufgabe</a>
{% endblock %}
我收到此错误:'str' 对象在我的 [ 中没有与 Aufgabejetzt.save()
相关的属性 'save'views.py。我知道 Aufgabejetzt 实际上是一个字符串对象,因此无法连接到数据库。但这就是重点...我不知道如何正确连接这两者...
我感谢各种帮助!
问题出在这一行:
Aufgabejetzt = request.POST["Bearbeiten"]
Aufgabejetzt.save()
您为对象分配了一个字符串,但该对象没有保存方法。
你可能想要:
Aufgabe.Aufgabejetzt = request.POST["Bearbeiten"]
Aufgabe.save()
我想完成我的待办事项应用程序。但是,我仍然无法正确编辑项目。我的想法是通过选择特定项目并用 .save()
覆盖其信息来更新数据库。有人能找到正确的 update()
函数来让它工作吗?
这是我的代码:
urls.py
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("<int:aufgabenzettel_id>", views.details, name="details"),
path("add/", views.add, name="add"),
path("delete/<int:aufgabenzettel_id>", views.delete, name="delete"),
path("edit/<int:aufgabenzettel_id>", views.edit, name="edit"),
path("update/<int:aufgabenzettel_id>", views.update, name="update")
]
models.py
from django.db import models
# Create your models here.
class Aufgabenzettel(models.Model):
Aufgabeselbst = models.CharField(max_length=64)
def __str__(self):
return f"{self.Aufgabeselbst}"
views.py
from django.http.response import HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from .models import Aufgabenzettel
# Create your views here.
def index(request):
return render(request, "aufgabenzettel/index.html", {
"Aufgabenliste":Aufgabenzettel.objects.all()
})
def details(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/details.html", {
"details":aufgabenzettel
})
def add(request):
if request.method == "POST":
Aufgabe = request.POST["Hinzufügen"]
Aufgabenzettel.objects.create(Aufgabeselbst=Aufgabe)
return HttpResponseRedirect(reverse("index"))
return render(request, "aufgabenzettel/add.html")
def delete(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
aufgabenzettel.delete()
return HttpResponseRedirect(reverse("index"))
def edit(request, aufgabenzettel_id):
aufgabenzettel = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/edit.html", {
"details":aufgabenzettel
})
def update(request, aufgabenzettel_id):
if request.method == "POST":
Aufgabe = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
Aufgabejetzt = request.POST["Bearbeiten"]
Aufgabejetzt.save()
return HttpResponseRedirect(reverse("index"))
else:
Aufgabe = Aufgabenzettel.objects.get(pk=aufgabenzettel_id)
return render(request, "aufgabenzettel/edit.html", {
"details":Aufgabe
})
index.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>Meine Aufgaben</h1>
<ol>
{% for Aufgabeselbst in Aufgabenliste %}
<li>
<a href="{% url 'details' Aufgabeselbst.id %}">
{{ Aufgabeselbst }}
</a>
<form action="{% url 'delete' Aufgabeselbst.id %}" method="post">
{% csrf_token %}
<button type="submit">Löschen</button>
</form>
<form action="{% url 'edit' Aufgabeselbst.id %}" method="post">
{% csrf_token %}
<button type="submit" value="{{ details }}">Bearbeiten</button>
</form>
</li>
{% endfor %}
</ol>
<h2>
<a href="{% url 'add' %}">Neue Aufgabe erstellen</a>
</h2>
{% endblock %}
add.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>Füge eine neue Aufgabe hinzu</h1>
<form action="{% url 'add' %}" method="post">
{% csrf_token %}
<input type="text" name="Hinzufügen" placeholder="Neue Aufgabe">
<button type="submit">Hinzufügen</button>
</form>
{% endblock %}
edit.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<form action="{% url 'update' details.id %}" method="post">
{% csrf_token %}
<input type="text" name="Bearbeiten" value="{{details}}">
<button type="submit">Bearbeiten</button>
</form>
<a href="{% url 'index' %}">Zurück zu Aufgabe</a>
{% endblock %}
details.html
{% extends "aufgabenzettel/layout.html" %}
{% block body %}
<h1>{{ details }}</h1>
<a href="{% url 'index' %}">Zurück zu Aufgabe</a>
{% endblock %}
我收到此错误:'str' 对象在我的 [ 中没有与 Aufgabejetzt.save()
相关的属性 'save'views.py。我知道 Aufgabejetzt 实际上是一个字符串对象,因此无法连接到数据库。但这就是重点...我不知道如何正确连接这两者...
我感谢各种帮助!
问题出在这一行:
Aufgabejetzt = request.POST["Bearbeiten"]
Aufgabejetzt.save()
您为对象分配了一个字符串,但该对象没有保存方法。
你可能想要:
Aufgabe.Aufgabejetzt = request.POST["Bearbeiten"]
Aufgabe.save()