Ich habe ein Bearbeitungsformular erstellt, um den Namen einer Person zu bearbeiten. Basierend auf ähnliche Stackoverflow Antworten zu diesem Thema, das ich mein Modell und Ansicht geändert, aber auch nach den Änderungen der Folge Fehler weiterhin bestehen:AttributError-Objekt Person hat keine Attribut-ID
Attribute bei/persion/4/Editiertyp Objekt ‚Person‘ hat kein Attribut ‚id '
models.py:
class Person(models.Model):
person_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(auto_now_add=True)
urls.py
url(r'^(?P<pk>\d+)/edit/$', views.person_edit, name='person_edit'),
views.py
def person_edit(request, pk):
obj = get_object_or_404(Person, pk=pk)
if request.method == "POST":
form = PersonForm(request.POST, instance=obj)
if form.is_valid():
obj = form.save(commit=False)
obj.name = request.person_text
obj.save()
return redirect('/person/index.html',context)
else:
form = PersonForm(instance=obj)
return render(request, 'person/edit_person.html', {'form': form})
edit_person.html
{% block content %}
<form action ="" method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Update</button>
</form>
{%endblock content %}
aktualisieren die views.py zu Changed:
def person_edit(request, pk):
Person = get_object_or_404(Person, pk=pk)
if request.method == "POST":
form = PersonForm(request.POST, instance=Person)
if form.is_valid():
Person = form.save(commit=False)
Person.name = request.POST['person_text']
Person.save()
return redirect('/person/index.html',context)
else:
form = PersonForm(instance=Person)
return render(request, 'person/edit_person.html', {'form': form})
Wie 'index.html' und' edit_person.html' aussehen? – DeepSpace
@DeepSpace siehe aktualisierte Frage –