OneToOneで紐づけたモデルの値を自動で入力するようにしたい。
下記モデルのshopは全てのユーザーが一つ値を持っています、その数値をCreateviewに自動で反映されるようにしたいのですが上手く行きません。
models.py class Shops(models.Model): SHOP_CHOICES = (省略 ) shop = models.CharField("店舗", max_length=3,choices=SHOP_CHOICES, blank=True,default=1) user = models.OneToOneField(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,) class Shop_config(models.Model): shops = models.OneToOneField(Shops,on_delete=models.CASCADE,default=Shops.shop) date = models.DateField('日付',default=datetime.date.today) need_pa = models.IntegerField(default=0) base_pa_a = models.IntegerField('平日',default=0) base_pa_b = models.IntegerField('祝前',default=0) base_pa_c = models.IntegerField('土日',default=0)
forms.py class Shop_base_configForm(forms.ModelForm): class Meta: model = Shop_config fields=('shops','base_pa_a','base_pa_b','base_pa_c',) wifgets={'date':forms.HiddenInput, 'shops':forms.HiddenInput,}
views.py class Shop_base_views(generic.CreateView): model = Shop_config template_name= 'shift/shop_config.html' form_class = Shop_base_configForm success_url = "/" class Shop_baseupdate_views(generic.UpdateView): model = Shop_config template_name= 'shift/shop_config.html' form_class = Shop_base_configForm success_url = "/"
shop_config.html <form action="" method="POST"> <div class="form-group"> <div class="input-group mb-3"> <div class="input-group-prepend"> <span class="input-group-text" id="basic-addon1">AAAAA</span> </div> <div aria-describedby="basic-addon">{{ form.base_pa_a|add_class:'form-control'}}</div></div> <div class="input-group mb-3"> <div class="input-group-prepend"> <span class="input-group-text" id="basic-addon1">BBBBB</span> </div> <div aria-describedby="basic-addon">{{ form.base_pa_b|add_class:'form-control'}}</div></div> <div class="input-group mb-3"> <div class="input-group-prepend"> <span class="input-group-text" id="basic-addon1">CCCCCC</span> </div> <div aria-describedby="basic-addon">{{ form.base_pa_c|add_class:'form-control'}}</div></div> {{ form.shops.as_hidden }} {% csrf_token %} </div> <button type="submit" class="btn btn-outline-primary">更新</button> </form> </div>
試したこと
モデルでdafaultで設定したけど上手く行かなった。
userモデルにも紐づいているため、user.shos.shopをデフォルトに設定しても上手くいかず。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/29 05:39
2020/06/29 07:56
2020/06/30 15:11