【发布时间】:2018-07-03 19:31:35
【问题描述】:
我有一个扩展 django.contrib.auth.models.User 的 Django 模型类:
class MyModel(models.Model):
user = models.OneToOneField(User, models.CASCADE, unique=True)
bio = models.TextField()
date_of_birth = models.DateField()
我正在使用这个模型制作一个 ModelForm:
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ['bio', 'date_of_birth']
如何告诉 MyModelForm 接受用户的字段,例如 username、first_name、last_name?
类 Meta 字段中的示例我可以添加 ['bio', 'date_of_birth', 'user'] 但这只会为我提供下拉列表以选择 MyModelForm 中的 MyModel 应与谁相关。
执行['bio', 'date_of_birth', 'user.first_name'] 会引发异常django.core.exceptions.FieldError: Unknown field(s) (user.first_name) specified for MyModel
编辑:这是回溯 https://pastebin.com/0T42VKEP
【问题讨论】:
-
嘿,您可以添加相关字段,如
user__username等,通过附加双下划线和相关模型字段名称。 -
仍然抛出 FieldError,未知字段异常
-
能否请您发布错误?还是追溯?
-
用回溯编辑它
-
添加了一个代码示例作为我使用的答案,这让我没有想到 Django 没有在表单中提供任何默认方式。