質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

djangoでタスクアプリの締切日になったらタスクのステータスを変更したい。

alizona
alizona

総合スコア125

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0グッド

0クリップ

78閲覧

投稿2023/01/25 03:23

django で、タスクアプリを作成しました。

締切(due) を  model で、due=models.DateTimeField() のように作成しました。
時間になったときに、statusをpast dueにしたいです。
views.py に書いたのですが、form をpostしない限り dueのチェックができません。
どうすれば、ユーザーのページへのアクセス毎に時間を確認できるのでしょうか?
また、dueの時間になったらチェックをするプログラムを書くべきでしょうか?
dueが変更される可能性があるので、並列でプログラムを走らせるのはどうすればいいかイメージが湧きません。

heroku上での運用をしています。

どうぞよろしくお願いします。

python

1 2 3 4def frontpage(request): 5 posts = Post.objects.all() 6 7 if request.method=="POST": 8 form=PostForm(request.POST, request.FILES) 9 10 if form.is_valid(): 11 comment=form.save(commit=False) 12 comment.fromwho=request.user 13 14 15 if datetime.now() >= comment.due: 16 new_status = Status.objects.get(status="pastdue") 17 comment.status=new_status 18 19 comment.save() 20 return redirect("frontpage") 21 else: 22 form =PostForm() 23 return render(request, "registration/frontpage.html", {"posts":posts, "form":form}) 24 25

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

yuma.inaura

2023/01/25 06:36

データ的にステータスを変更するのではなく、日付を過ぎていた時にプログラム的に処理を変えたら良いかなと思います
alizona

2023/01/25 15:12 編集

ありがとうございます。 データ的にステータスを変更。     ← ステータスを変更して、複数のhtmlファイルで、ステータスごとに表示するタスクを変えています。 プログラム的に処理を変更      ←日付を過ぎていたときの行うプログラムを分岐させて変更する。     そのトリガーをどこで仕掛ければいいのでしょうか?          また、view を分岐させて更新処理を行うということでしょうか?そうなると呼び出し方法は、linkをクリックするか、buttonをクリックする方法以外にやり方があるのでしょうか? 私が今考えられたのは、 template でpostのloop をしたときに、template tag (with) でステータスを変更する方法です  

回答1

0

自己解決

python

1 2 posts = Post.objects.all() 3 aproved_status = Status.objects.get(status="aproved") 4 pastdue_status = Status.objects.get(status="pastdue") 5 requested_status = Status.objects.get(status="requested") 6 now=datetime.now().replace(tzinfo=timezone(offset=timedelta())) 7 for post in posts: 8 if post.status!=aproved_status: 9 if post.due < now: 10 if post.status!=requested_status: 11 post.status=pastdue_status 12 post.save() 13

投稿2023/01/25 18:56

alizona

総合スコア125

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。