【发布时间】:2010-12-01 19:16:48
【问题描述】:
我有一个名为 Student 的模型,它有一些字段,以及与用户 (django.contrib.auth.User) 的 OneToOne 关系。
class Student(models.Model):
phone = models.CharField(max_length = 25 )
birthdate = models.DateField(null=True)
gender = models.CharField(max_length=1,choices = GENDER_CHOICES)
city = models.CharField(max_length = 50)
personalInfo = models.TextField()
user = models.OneToOneField(User,unique=True)
然后,我有该模型的 ModelForm
class StudentForm (forms.ModelForm):
class Meta:
model = Student
使用 Meta 类中的 fields 属性,我设法在模板中只显示一些字段。但是,我可以指明要显示哪些用户字段吗?
某事:
fields =('personalInfo','user.username')
目前没有显示任何内容。仅适用于 StudentFields/
提前致谢。
【问题讨论】:
-
我不确定这是不是你想要的,但你可以看看documentation for Inline Formsets
-
如果学生模型继承了用户模型,您只需要一个模型表单。
-
@KevinL.,如果您在答案中详细说明这一点会很棒:-)
-
@cel AFAIK,在 Django 核心中没有这样的发展。此处的“自动”解决方案可能很重要,并且涉及编写您自己的自定义模型表单类或混入来执行此操作。这将比使用建议的方法复杂得多(并且可以说更脆弱)。 this answer 中可能包含一种可能的解决方案,它描述了一个 ModelForm mixin,它允许定义第二个“子”模型并声称与通用视图兼容。
-
嘿,@Tom,我想知道,你觉得任何答案有帮助吗?
标签: python django django-forms