djangoの入門書からSNSアプリを作っておりますが、このエラーから抜け出せなくなっております。
他のサイトに調べながらやりましたが、全く見当がつかないのでこちらで質問させて頂きます。
views.py
1from django.shortcuts import render 2from django.shortcuts import redirect 3from django.contrib.auth.models import User 4from django.contrib import messages 5 6from .models import Message,Friend,Group,Good 7from .forms import GroupCheckForm,GroupSelectForm,SearchForm,FriendsForm,CreateGroupForm,PostForm 8 9from django.db.models import Q 10from django.contrib.auth.decorators import login_required 11 12@login_required(login_url='/admin/login/') 13def index(request): 14 (public_user, public_group) = get_public() 15 16 if request.method == 'POST': 17 18 if request.POST['mode'] == '__check_form__': 19 serchform = SearchForm() 20 checkform = GroupCheckForm(request.user,request.POST) 21 glist = [] 22 for item in request.POST.getlist('groups'): 23 glist.append(item) 24 25 messages = get_your_group_message(request.user, glist, None) 26 27 if request.Post['mode'] == '__serch_form__': 28 serchform = serchform(request.POST) 29 checkform = GroupCheckForm(request.user) 30 gps = Group.objects.filter(owner=request.user) 31 glist = [public_group] 32 for item in gps: 33 glist.append(item) 34 messages = get_your_group_message(request.user, glist, request.POST['search']) 35 else: 36 serchform = SearchForm() 37 checkform =GroupCheckForm(request.user) 38 gps = Group.objects.filter(owner=request.user) 39 glist = [public_group] 40 for item in gps: 41 glist.append(item) 42 messages = get_your_group_message(request.user, glist, None) 43 params = { 44 'login_user':request.user, 45 'contents':messages, 46 'check_form':checkform, 47 'serch_form':serchform, 48 } 49 return render(request, 'sns/index.html', params) 50 51 52@login_required(login_url='/admin/login') 53def groups(request): 54 friends = Friend.objects.filter(owner=request.user) 55 56 if request.method == 'POST': 57 58 if request.POST['mode'] == '__groups_form__': 59 sel_group = request.POST['groups'] 60 gp = Group.objects.filter(owner=request.user).filter(title=sel_group).first() 61 fds = Friend.objects.filter(owner=request.user).filter(group=gp) 62 vlist=[] 63 for item in fds: 64 vlist.append(item.user.username) 65 groupsform = GroupSelectForm(request.user, request.POST) 66 friendsform = FriendsForm(request.user, friends=friends, vals=vlist) 67 68 if request.POST['mode'] == 'friends_form__': 69 sel_group = request.POST['group'] 70 group_obj = Group.objects.filter(title=sel_group).first() 71 sel_fds = request.POST.getlist('friends') 72 sel_users = User.objects.filter(username__in=sel_fds) 73 fds = Friend.objects.filter(owner=request.user).filter(user__in=sel_users) 74 vlist = [] 75 for item in fds: 76 item.group = group_obj 77 item.save() 78 vlist.append(item.user.username) 79 messages.success(request, ' チェックしたFriendを' + sel_group + 'に登録しました。') 80 81 groupsform = GroupSelectForm(request.user, {'groups':sel_group}) 82 friendsform = FriendsForm(request.user, friends=friends, vals=vlist) 83 84 else: 85 groupsform = GroupSelectForm(request.user) 86 friendsform = FriendsForm(request.user, friends = friends, vals=[]) 87 sel_group = '-' 88 89 createform = CreateGroupForm() 90 params = { 91 'login_user':request.user, 92 'groups_form':groupsform, 93 'friends_form':friendsform, 94 'create_form':createform, 95 'group':sel_group, 96 } 97 return render(request, 'sns/groups.html', params) 98 99 100@login_required(login_url='/adnun/login/') 101def add(request): 102 add_name = request.Get['name'] 103 add_user = User.objects.filter(username=add_name).first() 104 105 if add_user == request.user: 106 messages.info(request, "自分自身をフレンドに追加することはできません。") 107 return redirect(to='/sns') 108 109 (public_user, public_group) = get_public() 110 111 frd_num = Friend.objects.filter(owner=request.user).filter(user=add_user).count() 112 113 if frd_num > 0: 114 messages.info(request, add_user.usernane + ' は既に追加されています。') 115 return redirect(to='/sns') 116 117 frd = Friend() 118 frd.owner = add_user 119 frd.user = add_user 120 frd.group = public_group 121 frd.save() 122 123 messages.success(request, add_user.username + ' を追加しました!groupページに移動して、追加したFriendをメンバーに設定して下さい。') 124 return redirect(to='/sns') 125 126@login_required(login_url='/admin/login/') 127def creategroup(request): 128 gp = Group() 129 gp.owner = request.user 130 gp.title = request.POST['group_name'] 131 gp.save() 132 messages.info(request, '新しいグループを作成しました。') 133 return redirect(to='/sns/groups') 134 135@login_required(login_url='/admin/login/') 136def post(request): 137 if request.method == 'POST': 138 gr_name = request.POST['groups'] 139 content = request.POST['content'] 140 group = Group.objects.filter(owner=request.user).filter(title=gr_name).first() 141 142 if group == None: 143 (pub_user, group) = get_public() 144 msg = Message() 145 msg.owner = request.user 146 msg.group = group 147 msg.content = content 148 msg.save() 149 messages.success(request,'新しいメッセージを投稿しました!') 150 return redirect(to='/sns') 151 else: 152 form = PostForm(request.user) 153 params = { 154 'login_user':request.user, 155 'form':form, 156 } 157 return render(request, 'sns/post.html', params) 158 159@login_required(login_url='/admin/login/') 160def share(request, share_id): 161 share = Message.objects.get(id=share_id) 162 163 if request.method == 'POST': 164 gr_name = request.POST['groups'] 165 content = request.POST['content'] 166 group = Group.objects.filter(owner=request.user).filter(title=gr_name).first() 167 168 if group == None: 169 msg = Message() 170 msg.owner = request.user 171 msg.group = group 172 msg.content = content 173 msg.share_id = share.id 174 msg.save() 175 share_msg = msg.get_share() 176 share_msg.share_count += 1 177 share_msg.save() 178 messages.success(request, 'メッセージをシェアしました!') 179 return redirect(to='/sns') 180 181 form = PostForm(request.user) 182 params = { 183 'login_user':request.user, 184 'form':form, 185 'share':share, 186 } 187 return render(request, 'sns/share.html', params) 188 189@login_required(login_url='/admin/login/') 190def good(request, good_id): 191 good_msg = Message.objects.get(id=good_id) 192 is_good = Good.objects.filter(owner=request.user).filter(message=good_msg).count() 193 194 if is_good > 0: 195 messages.success(request, '既にメッセージにはGoodしています') 196 return redirect(to='/sns') 197 198 good_msg.good_count += 1 199 good_msg.save() 200 good = Good() 201 good.owner = request.user 202 good.message = good_msg 203 good.save() 204 messages.success(request, 'メッセージにGoodしました!') 205 return redirect(to='/sns') 206 207 208def get_your_group_message(owner, glist, find): 209 (public_user,public_group) = get_public() 210 group = Group.objects.filter(Q(owner=owner)|Q(owner=public_user)).filter(title__in=glist) 211 me_friends = Friend.objects.filter(group__in=groups) 212 me_users = [] 213 for f in me_friends: 214 me_users.append(f.user) 215 his_groups = Group.objects.filter(owner__in=me_users) 216 his_friends = Friend.objects.filter(user=owner).filter(group__in=his_groups) 217 me_groups = [] 218 for hf in his_friends: 219 me_groups.append(hf.group) 220 if find == None: 221 messages = Message.objects.filter(Q(group__in=groups)|Q(group__un=me_groups))[:100] 222 else: 223 messages = Message.objects.filter(Q(group__in=groups)|Q(group__un=me_groups)).filter(content__contains=find)[:100] 224 return messages 225 226def get_public(): 227 public_user = User.objects.filter(username='public').first() 228 public_group = Group.objects.filter(owner=public_user).first() 229 return (public_user, public_group)
初心者ながらコードの掲載する際に不備などあると思いますがよろしくお願い致します。
エラーも省略せずtraceback含めて全文掲載してください
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/sns/
Django Version: 2.1.5
Python Version: 3.7.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'sns']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\t0301\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\t0301\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\base.py" in _get_response
137. "returned None instead." % (callback.__module__, view_name)
Exception Type: ValueError at /sns/
Exception Value: The view sns.views.index didn't return an HttpResponse object. It returned None instead.
すいませんtrackback載せます。
再度申し訳ございませんがご教授お願い致します。