亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DateTimeField 對象沒有屬性 strftime

DateTimeField 對象沒有屬性 strftime

海綿寶寶撒 2023-08-08 10:47:36
我的主要代碼是這樣的:  class Post(models.Model):    title = models.CharField(max_length=200, unique=True)    slug = models.SlugField(max_length=200, unique=True)    author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')    updated_on = models.DateTimeField(auto_now=True)    image = models.ImageField(upload_to='images/%Y/%m/%d/', blank=True)    content = models.TextField()    created_on = models.DateTimeField(auto_now_add=True)    status = models.IntegerField(choices=STATUS, default=0)    publishdate = created_on.strftime('%Y/%m')    class Meta:        ordering = ['-created_on']    def __str__(self):        return self.title當我運行這段代碼時,我得到:'DateTimeField' object has no attribute 'strftime'參考發布日期strftime 與 datetime.datetime 一起使用,而 DateTimeField 轉換為 datetime.datetime,那么我做錯了什么?我嘗試轉換為 datetime.datetime 無濟于事編輯:看到答案后,我想我應該驗證我想要做什么我正在嘗試將日期添加到 urls.py 中的此網址:   urlpatterns = [      path('', views.PostList.as_view(), name='home'),      path('<publishdate>/<slug:slug>', views.PostDetail.as_view(), name='post_detail']編輯2:我已將代碼更新為:class Post(models.Model):    title = models.CharField(max_length=200, unique=True)    slug = models.SlugField(max_length=200, unique=True)    author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')    updated_on = models.DateTimeField(auto_now=True)    image = models.ImageField(upload_to='images/%Y/%m/%d/', blank=True)    content = models.TextField()    created_on = models.DateTimeField(auto_now_add=True)    status = models.IntegerField(choices=STATUS, default=0)    created_on_string = created_on.value_to_string(created_on)    publishdate = strptime(created_on_string, '%Y/%m')    class Meta:        ordering = ['-created_on']    def __str__(self):        return self.title
查看完整描述

2 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

在類級別,created_on是 a DateTimeField,而不是datetime對象(不是類)所擁有的Post 對象。如果你想添加一個格式化它的屬性,你可以使用:


class Post(models.Model):

    # …

    created_on = models.DateTimeField(auto_now_add=True)


    @property

    def publishdate(self):

        return self.created_on.strftime('%Y/%m')


    # …

話雖如此,格式化數據通常不是模型的任務。模型用于存儲和表示數據。例如,在模板中,您可以使用|date模板標簽 [Django-doc]以datetime指定格式格式化對象。對于給定的Post對象post,您可以將其格式化為:


{{ post.created_on|date:'Y/m' }}

對于 URL,您可以使用兩個參數:


urlpatterns = [

    path('', views.PostList.as_view(), name='home'),

    path(

        '<int:year>/<int:month>/<slug:slug>',

        views.PostDetail.as_view(),

        name='post_detail'

    )

]

在您看來,您可以使用以下內容進行過濾:


class PostDetail(DetailView):

    model = Post


    def get_queryset(self, *args, **kwargs):

        return super().get_queryset(*args, **kwargs).filter(

            created_on__year=self.kwargs['year'],

            created_on__month=self.kwargs['month']

        )

在模板中,您可以使用以下對象鏈接到視圖post:


{% url 'post_detail' post.created_on.year post.created_on.month post.slug %}


查看完整回答
反對 回復 2023-08-08
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

難道不應該通過self在類級別向屬性添加 a 來工作嗎?

publishdate = self.created_on.strftime('%Y/%m')


查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號