【发布时间】:2016-12-12 07:56:43
【问题描述】:
我在 Django 中有一个用于参加活动的 ModelForm。它将用户显示为纯文本而不是字段:
class PlainTextWidget(forms.Widget):
def render(self, name, value, attrs=None):
return mark_safe(value) if value is not None else '-'
class AttendanceForm(forms.ModelForm):
class Meta:
model = Registration
fields = (
"absent",
"late",
"excused",
"user", # User foreign key
)
widgets = { 'student': PlainTextWidget,}
但是,我不想让表单显示用户的默认用户名,而是显示用户的个人资料字符串:user.profile.__str__
似乎我可以在 PlainTextWidget.render() 中使用 value 作为 Profiles 查询集上的过滤器来查找它,但是有没有更直接的方法来访问表单或小部件中的 user.profile?
我该怎么做?
【问题讨论】:
标签: python django django-forms django-widget