私は解決すべき奇妙な謎を抱えています:
https://docs.djangoproject.com/en/dev/topics/auth/で説明されているように、ユーザープロファイルを使用してdjango-1.4ユーザーオブジェクトを拡張し、プロジェクト固有の役割を実装したいと考えました。したがって、私のモデルは次のようになります。
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
projects = models.ManyToManyField(Project, through='UserProjectRole')
[...]
class UserProjectRole(models.Model):
userProfile = models.ForeignKey(UserProfile)
project = models.ForeignKey(Project)
group = models.ForeignKey(Group)
[...]
css-classを渡す必要があったので、UserProjectRoleのモデルフォームを作成し、ウィジェットを使用してuserProfile-Fieldを実装しました。
class ProjectRoleForm(forms.ModelForm):
userProfile = forms.ModelMultipleChoiceField(label='Users',
queryset=UserProfile.objects.all(),
widget=forms.SelectMultiple(attrs={'class': 'select-multiple'}))
class Meta:
model = UserProjectRole
フォームは正しく表示されますが、保存プロセス中に次のエラーでクラッシュします
Cannot assign "[<UserProfile: MyUser>]": "UserProjectRole.userProfile" must be a "UserProfile" instance.
誰かアイデアがありますか?