BAT*_*MAN 4 python django django-models django-forms
我正在尝试为模型创建一个表单,该表单继承自 Django auth.User 类
我得到了这个问题。有没有更好的方法来实现它?
#models.py
class Teacher(User):
#tutor = models.OneToOneField(User, on_delete=models.CASCADE, parent_link=True)
department = models.CharField(max_length=100)
contact_no = models.BigIntegerField()
def __str__(self):
return "%s %s" % (self.tutor.first_name, self.tutor.last_name)
#Forms.py
class TeacherForm(forms.ModelForm):
class Meta:
model = Teacher
fields = ('username', 'first_name', 'last_name', 'email', 'contact_no', 'department')
#views.py
def new_teacher(request):
form = TeacherForm()
return render(request, {'form': form})
Run Code Online (Sandbox Code Playgroud)
Django 版本:2.2.3
异常类型:TypeError
异常值:
join() 参数必须是 str 或 bytes,而不是 'dict'
================================================== ======================
追溯
Internal Server Error: /account/newteacher/ Traceback > (most recent call last): File > "/home/zed/PycharmProjects/untitledisbesttitle/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", > line 34, in inner > response = get_response(request) File "/home/zed/PycharmProjects/untitledisbesttitle/venv/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/zed/PycharmProjects/untitledisbesttitle/venv/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/zed/PycharmProjects/untitledisbesttitle/accounts/views.py", > line 14, in new_teacher > return render(request, {'form': form}) File "/home/zed/PycharmProjects/untitledisbesttitle/venv/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/zed/PycharmProjects/untitledisbesttitle/venv/lib/python3.6/site-packages/django/template/loader.py", > line 61, in render_to_string > template = get_template(template_name, using=using) File "/home/zed/PycharmProjects/untitledisbesttitle/venv/lib/python3.6/site-packages/django/template/loader.py", > line 15, in get_template > return engine.get_template(template_name) File "/home/zed/PycharmProjects/untitledisbesttitle/venv/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/zed/PycharmProjects/untitledisbesttitle/venv/lib/python3.6/site-packages/django/template/engine.py", > line 143, in get_template > template, origin = self.find_template(template_name) File "/home/zed/PycharmProjects/untitledisbesttitle/venv/lib/python3.6/site-packages/django/template/engine.py", > line 125, in find_template > template = loader.get_template(name, skip=skip) File "/home/zed/PycharmProjects/untitledisbesttitle/venv/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/zed/PycharmProjects/untitledisbesttitle/venv/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/zed/PycharmProjects/untitledisbesttitle/venv/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' [06/Aug/2019 08:41:05] "GET > /account/newteacher/ HTTP/1.1" 500 120952
Run Code Online (Sandbox Code Playgroud)
bru*_*ers 11
这里:
/home/zed/PycharmProjects/untitledisbesttitle/accounts/views.py", > 第 14 行,在 new_teacher 中 return render(request, {'form': form})
render() 第二个参数应该是(相对)模板路径:
return render(request, "yourapp/yourtemplate.html", {'form': form})
Run Code Online (Sandbox Code Playgroud)
与错误消息一起出现的回溯是首先要检查以找出异常发生的位置。
| 归档时间: |
|
| 查看次数: |
7687 次 |
| 最近记录: |