回答編集履歴

2

修正

2020/10/10 02:08

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -11,6 +11,8 @@
11
11
  from django.contrib.auth.mixins import LoginRequiredMixin
12
12
 
13
13
  from django.http import HttpResponseRedirect
14
+
15
+ # from django.shortcuts import redirect # HttpResponseRedirectの代わりにredirect()関数を使うときのimport
14
16
 
15
17
  from django.urls import reverse,reverse_lazy
16
18
 
@@ -36,7 +38,15 @@
36
38
 
37
39
  return HttpResponseRedirect(reverse('appname:company_detail', kwargs={'pk': company.id}))
38
40
 
41
+ # 短縮して下記のような書き方もできます、(冒頭でredirect()関数をimportする必要あり)
42
+
43
+ # return redirect('appname:company_detail', pk=company.id)
44
+
39
45
  return HttpResponseRedirect(reverse('appname:company_create'))
46
+
47
+ # 短縮して下記のような書き方もできます。
48
+
49
+ # return redirect('appname:company_create')
40
50
 
41
51
 
42
52
 

1

修正

2020/10/10 02:08

投稿

sfdust
sfdust

スコア1135

test CHANGED
@@ -1,9 +1,43 @@
1
- except company.DoesNotExist
1
+ 下記のようにしてみました。
2
2
 
3
-
4
-
5
- except Company.DoesNotExist
3
+ .exists()関数を使用しています。
6
4
 
7
5
 
8
6
 
7
+ ```Python
8
+
9
- とした場合、いかがでしょうか?
9
+ # views.py
10
+
11
+ from django.contrib.auth.mixins import LoginRequiredMixin
12
+
13
+ from django.http import HttpResponseRedirect
14
+
15
+ from django.urls import reverse,reverse_lazy
16
+
17
+ from django.views import generic
18
+
19
+ from .models import Company
20
+
21
+
22
+
23
+ class IndexView(LoginRequiredMixin,generic.TemplateView):
24
+
25
+ template_name = 'index.html'
26
+
27
+
28
+
29
+ def get(self, request, **kwargs):
30
+
31
+ user = self.request.user
32
+
33
+ if Company.objects.filter(user=user).exists():
34
+
35
+ company = Company.objects.get(user=user)
36
+
37
+ return HttpResponseRedirect(reverse('appname:company_detail', kwargs={'pk': company.id}))
38
+
39
+ return HttpResponseRedirect(reverse('appname:company_create'))
40
+
41
+
42
+
43
+ ```