第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決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當(dāng)我運行這段代碼時,我得到:'DateTimeField' object has no attribute 'strftime'參考發(fā)布日期strftime 與 datetime.datetime 一起使用,而 DateTimeField 轉(zhuǎn)換為 datetime.datetime,那么我做錯了什么?我嘗試轉(zhuǎn)換為 datetime.datetime 無濟(jì)于事編輯:看到答案后,我想我應(yīng)該驗證我想要做什么我正在嘗試將日期添加到 urls.py 中的此網(wǎng)址:   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貢獻(xiàn)1909條經(jīng)驗 獲得超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')


    # …

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


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

對于 URL,您可以使用兩個參數(shù):


urlpatterns = [

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

    path(

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

        views.PostDetail.as_view(),

        name='post_detail'

    )

]

在您看來,您可以使用以下內(nèi)容進(jìn)行過濾:


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 %}


查看完整回答
反對 回復(fù) 2023-08-08
?
呼啦一陣風(fēng)

TA貢獻(xiàn)1802條經(jīng)驗 獲得超6個贊

難道不應(yīng)該通過self在類級別向?qū)傩蕴砑?a 來工作嗎?

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


查看完整回答
反對 回復(fù) 2023-08-08
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號