frontpage.htmlで、タスクを投稿するフォームを設置して、タスク一覧がfrontpage.htmlに表示されるようにしています。
タスク用のクラスは Post class で、status という項目を含んでいます。
初期値は、assigned でタスクが作られると同時にassigned と画面に表示されます。
その横に、タスクのステータスを変更するためのボタンを作っています。
しかしどのように views.py の frongpage に、status_viewを組み込んでいいのかわかりません。
アドバイスをいただきたいです。
python
1#frontpage.html2{% extends "registration/base.html" %} 3{% block content %} 4 5 <br>6 <br>7 8 <h2 class="subtitle">add post</h2>9 <br>10 <form action="." method="post" enctype="multipart/form-data"> <!--これ忘れたた-->11 {% csrf_token%}12 {{form.as_p}}13 <div class="field">14 <div class="control">15 <button class="button is-danger">submit</button>16 </div>17 </div>18 </form>19 <br>20 <hr>21 22 <br>23 <br>24 <br>25 <br>26 27 28 {% for post in posts %}29 <!------------------post placed------------->30 <div class="post block">31 <small>32 <strong>33 34 <!----------------- ステータスを変えるためのボタンを表示---------------->35 <form action="{% url 'registration.views.statusview' %}" method="post">36 {% csrf_token %}37 38 <!-- 自分が人に作ったタスク -->39 {% if user.pk == post.fromwho.pk %} 40 {% if post.status == "requested" %} 41 <input type="submit" name="aprove" value="ボタン4">42 <input type="submit" name="deny" value="ボタン3">43 {% endif %} 44 {% endif %} 45 46 <!-- 誰かが自分に作ったタスク -->47 {% if user.pk == post.towho.pk %} 48 {% if post.status == "assigned" %} 49 <p>{{post.status}}</p>50 <!-- status_request -->51 <input type="submit" name="request" value="ボタン2">52 {% elif post.status == "requested" %} 53 <p>{{post.status}}</p>54 <!-- status_unsend -->55 <input type="submit" name="unsent" value="ボタン1"> 56 {% elif post.status == "denied" %} 57 <p>{{post.status}}</p>58 <!-- status_request-->59 <input type="submit" name="request" value="ボタン2">60 {% endif %}61 {% endif %}62 </form>63 64 <!------------------------status を表示 --------------------------------->65 <!-- 自分が人に作ったタスク -->66 {% if user.pk == post.fromwho.pk %} 67 {% if post.status == "requested" %} 68 <P>{{post.status}}</P> 69 70 {% endif %} 71 {% endif %}72 73 <!-- 誰かが自分に作ったタスク -->74 {% if user.pk == post.towho.pk %} 75 {% if post.status == "assigned" %} 76 <p>{{post.status}}</p>77 {% elif post.status == "requested" %} 78 <p>{{post.status}}</p>79 {% elif post.status == "denied" %} 80 <p>{{post.status}}</p>81 {% endif %}82 {% endif %}83 84 85 </strong>86 </small>87 88 <h2 class="subtitle" >{{post.title}}89 <p>Due: {{post.due}}</p>90 <p>Assigned: {{post.posted_date}}</p>91 {{post.fromwho}}92 -> 93 {{post.towho}}94 95 <br>96 <br>97 <br>98 <br> 99 {% endfor %}100 <br>101 <br>102 <br>103 <br>104 105{% endblock %}
python
1#views.py2 3#https://yura2.hateblo.jp/entry/2015/04/04/Django%E3%81%A7%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E5%86%85%E3%81%A7%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%95%E3%82%8C%E3%81%9F%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E7%95%B04from registration.forms import StatusForm 5def status_view(request, pk):6 post = Post.objects.get(pk=pk)7 if request.method == 'POST':8 form = StatusForm(request.POST, request.FILES)9 10 if form.is_valid():11 comment=form.save(commit=False)12 comment.post=post 13 14 if 'deny' in request.POST:15 comment.status='denied'16 elif 'aprove' in request.POST:17 comment.status='aproved'18 elif 'unsend' in request.Post:19 comment.status='assigned'20 elif 'request' in request.Post:21 comment.status='requested'22 23 comment.save()24 return redirect("frontpage")25 else:26 form = PostForm()27 success_url='/'28 # return render(request, "registration/frontpage.html", {"post":post})29 30
python
1#frontpage.html2 3from django.contrib.auth.decorators import login_required 4@login_required5def frontpage(request):6 posts = Post.objects.all()7 8 if request.method=="POST":9 form=PostForm(request.POST, request.FILES)10 11 if form.is_valid():12 comment=form.save(commit=False)13 comment.fromwho=request.user 14 comment.save()15 return redirect("frontpage")16 else:17 form =PostForm()18 return render(request, "registration/frontpage.html", {"posts":posts, "form":form})19 20
python
1#forms.py2 3 4from django import forms 5 6from .models import Comment, Post 7 8 9class CommentForm(forms.ModelForm):10 class Meta:11 model=Comment 12 fields=["body","image","video"]13 14 15class PostForm(forms.ModelForm):16 class Meta:17 model=Post 18 fields=["title","due","towho","body","image","video"]19 20 21class StatusForm(forms.ModelForm):22 class Meta:23 model = Post 24

0 コメント