2
我有一个名为Access的模型链接到两个其他模型。自定义inline_formset字段显示外键
class Access (models.Model):
portfolio_id = models.ForeignKey(Portfolio)
user_id = models.ForeignKey(User)
title = models.CharField(max_length=30, null=True, blank=True)
access_rights = models.PositiveIntegerField(choices=ACCESS_CHOICES)
我已创建此表单。
class UserAccessForm(forms.ModelForm):
class Meta:
model = Access
我有这个看法。
AccessFormSet = inlineformset_factory(Portfolio,
Access,
form=UserAccessForm,
extra=1,
can_delete=False)
cAccessFormSet = AccessFormSet(instance=cPorfolio)
的问题是在网页中,USER_ID显示为choicefield给了我所有用户的列表(即“jane15”,“tom54”)。我希望它是一个文本字段,有人必须输入用户名。当我尝试按如下所述对其进行自定义时,它会显示“用户ID”而不是“用户名”(即“1”,“2”)。
class UserAccessForm(forms.ModelForm):
user_id = forms.ChoiceField(required=True, widget=forms.TextInput)
class Meta:
model = Access
我如何获得该formset显示和接受用户名(即“jane15”)作为一个文本框,而不是作为一个choicefield?
这就是我已经尝试过的。这会导致我的用户显示为他们的用户标识而不是他们的用户名。出于安全原因,我需要用户名并且没有下拉列表。 – 2011-03-12 01:04:42
不幸的是,您可以覆盖添加功能,但在查看数据时,实际表字段只有一个数字。 – 2011-03-12 03:42:07
是的,那是我的问题。我该如何解决这个问题? – 2011-03-13 20:08:17