我继续在下面出现错误,有人可以给我打电话告诉我我在做什么错吗? settings.py:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
urls.py:
from django.urls import path
from . import views
path('editar-pessoa/<int:id>', views.editar_pessoa, name='core_editar_pessoa'),
views.py:
def editar_pessoa(request, id):
pessoa = get_object_or_404(Pessoa, pk=id)
form = PessoaForm(request.POST or None, instance=pessoa)
data = {'pessoa':pessoa, 'form':form}
if request.method == 'POST':
if form.is_valid():
form.save()
return redirect('core_lista_pessoas')
else:
return render('core/editar_pessoa.html', data)
editar_pessoa.html(模板):
{% extends 'base.html' %}
{% block content %}
<form action="{% url 'core_editar_pessoa' pessoa.id %}" method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Editar</button>
</form>
{% endblock %}
lista_pessoas.html(带有比索列表的模板):
{% extends 'base.html' %}
{% block content %}
<ul>
{% for pessoa in pessoas %}
<li>
<a href="{% url 'core_editar_pessoa' pessoa.id %}">{{ pessoa.nome }}</a>
</li>
{% endfor %}
{% endblock %}
错误提示:
File "/home/santos/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/santos/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/santos/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/santos/webDeveloper/estacionamento/core/views.py", line 101, in editar_pessoa
return render('core/editar_pessoa.html', data)
File "/home/santos/.local/lib/python3.6/site-packages/django/shortcuts.py", line 36, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/home/santos/.local/lib/python3.6/site-packages/django/template/loader.py", line 61, in render_to_string
template = get_template(template_name, using=using)
File "/home/santos/.local/lib/python3.6/site-packages/django/template/loader.py", line 15, in get_template
return engine.get_template(template_name)
File "/home/santos/.local/lib/python3.6/site-packages/django/template/backends/django.py", line 34, in get_template
return Template(self.engine.get_template(template_name), self)
File "/home/santos/.local/lib/python3.6/site-packages/django/template/engine.py", line 143, in get_template
template, origin = self.find_template(template_name)
File "/home/santos/.local/lib/python3.6/site-packages/django/template/engine.py", line 125, in find_template
template = loader.get_template(name, skip=skip)
File "/home/santos/.local/lib/python3.6/site-packages/django/template/loaders/base.py", line 18, in get_template
for origin in self.get_template_sources(template_name):
File "/home/santos/.local/lib/python3.6/site-packages/django/template/loaders/filesystem.py", line 36, in get_template_sources
name = safe_join(template_dir, template_name)
File "/home/santos/.local/lib/python3.6/site-packages/django/utils/_os.py", line 32, in safe_join
final_path = abspath(join(base, *paths))
File "/usr/lib/python3.6/posixpath.py", line 94, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.6/genericpath.py", line 149, in _check_arg_types
(funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'dict'
[30/Jan/2020 03:19:50] "GET /editar-pessoa/3 HTTP/1.1" 500 122769
当我尝试对垃圾系统的CRUD进行更新时遇到了这个问题
我是初学者,所以很抱歉,如果要求不明确,有人可以帮助我吗?