前提・実現したいこと
店舗管理者が店舗スタッフを新規登録する際に、自動的に店舗IDが紐づけられるようにしたいです。
店舗管理者の登録は、djangoのデフォルトのUserモデルを使っています。
店舗管理者と店舗は、ManyToManyFieldで、
店舗とスタッフは、ForeignKeyで紐づけています。
該当のソースコード
※不要そうなところは省略してあります。
models.py
python
1from django.contrib.auth.models import User 2... 3 4class Store(models.Model): 5 name = models.CharField(verbose_name='店舗名', max_length=255) 6 user = models.ManyToManyField(User, verbose_name='店舗管理者') 7 8 9class Staff(models.Model): 10 name = models.CharField(verbose_name='名前', max_length=255) 11 store_id = models.ForeignKey( 12 Store, verbose_name='店舗ID', on_delete=models.CASCADE,)
views.py
python
1class StaffCreateView(CreateView): 2 model = Staff 3 form_class = StaffCreateForm 4 template_name = '../staff_create.html' 5 success_url = reverse_lazy('sample:index')
forms.py
python
1class StaffCreateForm(forms.ModelForm): 2 3 class Meta: 4 model = Staff 5 fields = '__all__'
発生している問題・エラーメッセージ 試したこと
今のままでは、スタッフ登録はできるのですが、店舗IDを自分で選ぶ仕組みになっています。
これを、自分で選択することなく、店舗IDを紐づけたいです。
fields = 'all'の部分をexclude = ['store_id']にすると、
自分で店舗IDを選ぶ必要はなくなるのですが、以下のエラーが出てしまいます。
列"store_id_id"内のNULL値はNOT NULL制約違反です
お分かりになる方がおりましたら、何卒宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー