####状況
django初心者です。ブログアプリの様なものを作ろうとしています。
投稿記事の更新ページをUpdateViewをベースに作成しようとしているのですが、見た目がCreateViewと一致しません。
どなたか、対応方針をご教示頂けると幸いです。
####詳細
下記の様に、初回投稿用のviewとtemplateを用意しました。
python
1(view.py) 2class PostCreateForm(forms.ModelForm): 3 class Meta: 4 model = Post 5 fields = ['is_public', 'title', 'content', 'tags'] 6 widgets = { 7 'tags' : CustomCheckboxSelectMultiple 8 } 9 10 11class PostCreateView(LoginRequiredMixin, CreateView): 12 form_class = PostCreateForm 13 model = Post 14 15 def form_valid(self, form): 16 form.instance.author = self.request.user 17 return super().form_valid(form)
python
1(post_form.html) 2{% extends "original_blog/base.html" %} 3{% load crispy_forms_tags %} 4{% load widget_tweaks %} 5{% load myfilters %} 6 7{% block content %} 8 <div class="content-section"> 9 <form method = "POST"> 10 {% csrf_token %} 11 <fieldset class="form-group"> 12 <legend class="border-bottom mb-4">投稿フォーム</legend> 13 <div class="post-items"> 14 公開: 15 {{ form.is_public|addclass:'post-is_public'}} 16 タイトル: 17 {{ form.title|addclass:'post-title' }} 18 本文: 19 {{ form.content|addclass:'post-content' }} 20 </div> 21 <div class="post-tags mb-4"> 22 タグ:<br> 23 {{ form.tags|addclass:'post-tags custom-checkbox' }} 24 </div> 25 26 <div class="post-submit"> 27 <button class="btn btn-outline-info" type="submit">投稿</button> 28 </div> 29 </fieldset> 30 </form> 31 </div> 32{% endblock content %}
一方で、記事の更新を下記の様にUpdateViewをベースに作成しましたが、見た目が一致しません。(タグが表示されない)
python
1class PostUpdateView(LoginRequiredMixin, UserPassesTestMixin, UpdateView): 2 model = Post 3 fields = ['is_public', 'title', 'content', 'tags'] 4 5 def form_valid(self, form): 6 form.instance.author = self.request.user 7 return super().form_valid(form) 8 9 def test_func(self): 10 post = self.get_object() 11 if self.request.user == post.author: 12 return True 13 return False
対応方針、確認ポイントがお分かりになる方、ご教示頂けますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/06 00:43