現在
djangoでformsetを使用してmodelの編集機能をつけました。
そしてレイアウトを整えているのですが、子フォームの個別の表示方法がわかりません。
一括で表示させることはできるのですが、レイアウトの微調整がうまく出来ません。
コードのtemplateの{form.formset}は一括で現在表示が出来ているものになります。
コード
view
1class UserEdit(generic.UpdateView): 2 model = User 3 form_class = forms.UserUpdateForm 4 template_name = 'accounts/accounts_edit.html' 5 success_url = reverse_lazy('accounts:edit') 6 7 def get_object(self): 8 return get_object_or_404(User, pk=self.request.user.user_id)
form
1class ProfileUpdateForm(forms.ModelForm): 2 3 class Meta: 4 model = profile 5 fields = ('first_name','last_name','birthday') 6 7 def __init__(self, *args, **kwargs): 8 super().__init__(*args, **kwargs) 9 for field in self.fields.values(): 10 field.widget.attrs['class'] = 'form-control' 11 12ProfileFormSet = inlineformset_factory(User,profile,form=ProfileUpdateForm,extra=0) 13 14class UserUpdateForm(mixins.ModelFormWithFormSetMixin,forms.ModelForm): 15 #Userモデルにprofileモデルを入れる 16 formset_class = ProfileFormSet 17 class Meta: 18 model = User 19 fields = ('username','email',) 20 21 def __init__(self, *args, **kwargs): 22 super().__init__(*args, **kwargs) 23 for field in self.fields.values(): 24 field.widget.attrs['class'] = 'form-control' 25
template
1<form method="POST" enctype="multipart/form-data"> 2 {% csrf_token %} 3 {{ form.username.label_tag }} 4 {{ form.username }} 5 {{ form.email.label_tag }} 6 {{ form.email }} 7 {{ form.formset }} 8 9 <button type="submit">Submit</button> 10 </form>
あなたの回答
tips
プレビュー