前提・実現したいこと
ForeignKeyで取得した値を使って
一度に複数のレコードを作成したいです。
発生している問題・エラーメッセージ
保存時に
ValueError Cannot assign "<QuerySet [<CustomPermission: マイページの変更>, <CustomPermission: マイページの閲覧>]>": "CustomPermissionUser.permission_name" must be a "CustomPermission" instance.
というエラーになります
該当のソースコード
Python
1"""Models.py""" 2class CustomPermission(models.Model): 3 perm_name = models.CharField('パーミッション名',max_length=100) 4 perm_codename = models.CharField('コードネーム',max_length=100) 5 del_flg = models.BooleanField(default=0) 6 def __str__(self): 7 return self.perm_name 8 9class CustomPermissionUser(models.Model): 10 permission_user = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='ユーザー名') 11 permission_name = models.ForeignKey(CustomPermission,on_delete=models.CASCADE,related_name='custom_per_user',verbose_name='権限名')
python
1"""Forms.py""" 2class UserPermissionForm(forms.ModelForm): 3 permission_name = forms.ModelMultipleChoiceField( 4 label="権限設定", 5 queryset=CustomPermission.objects.all(), 6 widget=forms.CheckboxSelectMultiple, 7 ) 8 class Meta: 9 model = CustomPermissionUser 10 fields = ['permission_user','permission_name',] 11 12 def save(self, commit=True): 13 obj = super(UserPermissionForm,self).save() 14 if commit: 15 obj.save() 16 return obj
試したこと
Forms.pyのpermission_name =~ の部分が無ければ普通にプルダウンでひとつずつ保存できるので、その内容をいろいろ書き換えようと試みましたが、Querysetをinstanceにバラしてforでひとつずつ保存する?など考えましたが書き方がわかりませんでした・・
補足情報(FW/ツールのバージョンなど)
Django Version: 2.1.1
Python Version: 3.6.6
Spyder3.3.1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。