Ceci est le premier post
Comme le titre l'indique, c'est une histoire que j'ai eu du mal à obtenir des données d'une date et d'une heure spécifiques avec Django. J'ai passé une journée entière avant de pouvoir faire ce que je voulais, alors je l'ai posté sous forme de mémorandum pour ne pas oublier cette épreuve, et j'espère que les personnes qui liront cet article pourront réduire la douleur de faire la même chose. ..
-Comment puis-je spécifier le mois ou le jour lors du filtrage de DateTimeField?
Cela peut être un peu utile pour ceux qui ont des problèmes tels que.
models.py
from django.db import models
class Article(models.Model):
user_id = models.IntegerField()
wirriten_date = models.DateTimeField()
text = models.CharField(max_length=255)
def __str__(self):
return self.text
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('<int:user_id>/<int:date_delta>/', views.index, name=index),
#Ici date_delta Spécifie le nombre de jours que vous souhaitez obtenir.
]
Lorsque j'ai défini des modèles et des URL comme celui-ci, j'ai essayé d'obtenir toutes les phrases publiées par l'utilisateur spécifié par user_id à la date spécifiée par date_delta.
En conclusion, j'ai trouvé que je pouvais envoyer des données au modèle en écrivant la vue comme suit.
views.py
from django.shortcuts import render
from .models import Article
from datetime
def index(request, user_id, date_delta):
date_now = datetime.datetime.now()
wrriten_date = date_now - datetime.timedelta(days=date_delta)
article = Article.objects.filter(user_id=user_id, menu_date__month=menu_date.month, menu_date__day=menu_date.day)
context = {
'article': article,
}
return render(request, 'myapp/index.html', context)
index.html
<p>
{{ article.1.text }}
<!--Mise en garde! article[1]Entraînera une erreur-->
</p>
Le plus gros problème était de savoir comment écrire la condition de méthode de filtrage de Article.objects. __ month et __ day after menu_date sont des champs de recherche et vous pouvez ajouter des conditions aux noms de variables de modèle.
J'ai découvert les champs de recherche en lisant l'article suivant. ・ Web Dee Co., Ltd./Service/BLOG/Django Comment utiliser la recherche de champ https://webty.jp/staffblog/production/post-1263/
Lorsque vous accédez à chaque donnée avec un modèle, vous pouvez accéder à chaque donnée en tapant ".data number" comme indiqué ci-dessus.
Même si vous écrivez des vues comme dans la section précédente, cela ne fonctionnera pas bien selon l'environnement. Dans ce cas, la modification du paramètre de fuseau horaire peut fonctionner correctement.
setting.py
TIME_ZONE = 'Asia/Tokyo'
USE_TZ = True
Dans mon cas, j'ai défini le fuseau horaire dans le paramètre ci-dessus, et lorsque j'ai défini le fuseau horaire sur le Japon, cela fonctionnait bien.
J'espère que cet article aidera quelqu'un même un peu. Comme je suis encore un débutant en programmation et Qiita, il se peut qu'il y ait de nombreux points que je n'ai pas atteints, mais j'aimerais continuer à produire activement à l'avenir. Si vous avez des conseils tels que "C'est étrange" ou "Je devrais le faire plus!", Je vous serais reconnaissant de bien vouloir commenter.
・ Web Dee Co., Ltd. / Service / BLOG / Django Comment utiliser la recherche de champ https://webty.jp/staffblog/production/post-1263/
Recommended Posts