#背景
Python/DjangoでWebアプリケーションを開発しております。
Python: 3.5.5
Django: 2.0.5
モデルを定義し、そのモデルへの新規登録画面や更新画面、削除画面をクラスベースビューを使ってコーディングをしています。
#質問内容
Userログインを必須とするアプリで、ログオン機能は実装済みです。
ItemモデルはUserIDを持っていて、UserモデルとForeignKeyで結び付いています。
Itemモデルを新規登録するときに、ログオン中のUserIDを自動セットしてItemを登録したいです。
またその登録画面(item_create_form.html)では、UserIDは非表示にしたいです。
現在私が書いたコードは下記の通りなのですが、これでは登録画面(item_create_form.html)で、UserIDをプルダウンすることになります。その際に他のUserIDも選べてしまいます。
解決方法をご教授いただけますと幸いです。
よろしくお願いいたします。
#現在私が書いているコード
python
1models.py 2(中略) 3 4class Item(models.Model): 5 user = models.ForeignKey(User, on_delete=models.PROTECT) 6 item_name = models.CharField("品名", max_length=64) 7 active = models.BooleanField(default=True) 8 created_at = models.DateTimeField(auto_now_add=True) 9 updated_at = models.DateTimeField(auto_now=True) 10 11 def __str__(self): 12 return str(self.item_name)
python
1forms.py 2(中略) 3 4class ItemForm(forms.ModelForm): 5 class Meta: 6 model = Item 7 fields = ['user', 'item_name' ]
python
1views.py 2(中略) 3 4class ItemCreateView(LoginRequiredMixin, CreateView): 5 model = Item 6 form_class = ItemForm 7 form_class.user = get_user_model() 8 success_url = reverse_lazy('app:item_list') 9 template_name = 'app/item_create_form.html' 10 11 def form_valid(self, form): 12 result = super().form_valid(form) 13 messages.success( 14 self.request, '「{}」を登録しました'.format(form.instance)) 15 return result
python
1templates/item_create_form.html 2(中略 タグも省略しています。) 3 4{{form.user}} 5{{form.item_name}} 6<button class="btn btn-primary">登録</button>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。