Q&A
前提
djangoでsnsアプリを作ってます。
・3~4行目の__init__の処理で何をしているのか?
・4行目のsuper(GroupCheckForm, self)の書き方を見たことなので混乱してる。super().init(self, *args, **kwargs)ではダメなのか?
・6行目の変数の書き方が分かりません。self.fields['groups']。self.groupsではダメなのか?
該当のソースコード
python
1# forms.py-------------- 2class GroupCheckForm(forms.Form): 3 def __init__(self, user, *args, **kwargs): 4 super(GroupCheckForm, self).__init__(*args, **kwargs) 5 public = User.objects.filter(username='public').first() 6 self.fields['groups'] = forms.MultipleChoiceField( 7 choices=[(item.title, item.title) for item in Group.objects.filter(owner__in=[user, public])], 8 widget=forms.CheckboxSelectMultiple(), 9 ) 10 11 12# models.py-------------- 13class Group(models.Model): 14 owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='group_owner') 15 title = models.CharField(max_length=100) 16 17 def __str__(self): 18 return self.title 19 20 21# views.py-------------- 22if request.method == 'POST': 23 checkform = GroupCheckForm(request.user,request.POST) 24else: 25 checkform = GroupCheckForm(request.user) 26 27return render(request, 'sns/index.html', checkform) 28 29 30# index.html-------------- 31<form action="{% url 'index' %}" method="post"> 32 {% csrf_token %} 33 <input type="hidden" name="mode" value="__check_form__"> 34 {{check_form}} # 最終的にここを表示させたい 35 <button>update</button> 36</form>
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/01/22 02:58
2023/01/22 03:47