teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

HTMLは既に修正済みだったということなので。

2019/08/16 00:21

投稿

shotanuki
shotanuki

スコア102

answer CHANGED
@@ -11,4 +11,35 @@
11
11
  <input type="text" class="form-control" id="last_name_kana" value="{{last_name_kana }}">
12
12
  <input type="text" class="form-control" id="first_name_kana" value="{{first_name_kana }}">
13
13
  </form>
14
+ ```
15
+
16
+ このエラー自体は View classでPOSTメソッドが定義されていないというエラーです。
17
+ しかしURLとViewを見る限り問題なく定義されているように見受けられます。
18
+
19
+ ただ、一つ気になったのが書かれているコードのインデントがおかしいです。
20
+ 下記のようにClassの中に `def post`が書かれていません。
21
+ 普通はエラーになるはずですが、もしかしてこのClassに`def get`などもあったりしますでしょうか?
22
+ 仮にそうならば、`def post`がただの関数になっているために`POST`メソッド使えないよと怒られているのかもしれません。
23
+ ```diff
24
+ class DateDolwnload(LoginRequiredMixin, generic.ListView):
25
+
26
+ + def post(self, request, *args, **kwargs) :
27
+ + if request.method == "POST":
28
+ + d = {
29
+ + 'name':request.GET.get('last_name_kana ')
30
+ + }
31
+
32
+
33
+ + if self.request.POST.get('static_employee_number', None):
34
+
35
+ + wb = px.Workbook()
36
+ + sheet = wb['sheet1']
37
+ + sheet['C2'] = d ["name"]
38
+
39
+ + response = HttpResponse(content_type='application/vnd.ms-excel')
40
+ + response['Content-Disposition'] = 'attachment; filename=%s' % 'report.xlsx'
41
+
42
+ + return render(request, 'hoge/custom_detail_detail.html', {'form': form})
43
+ ```
44
+
14
45
  ```