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

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

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

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

Heroku

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

Python

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

Q&A

解決済

1回答

351閲覧

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

alizona

総合スコア126

Django

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

Heroku

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

Python

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

0グッド

0クリップ

投稿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

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

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

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

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

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

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

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

yuma.inaura

2023/01/25 06:36

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

2023/01/25 15:12 編集

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

回答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

総合スコア126

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

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

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

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.60%

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

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

質問する

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

Django

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

Heroku

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

Python

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