2016-09-12 4 views
1

私はこの前の記事で答え、次の試してみました: DateTimeField doesn't show in admin system管理パネル、表示するには、date_createdとdate_updated?

しかし、多分私はそれを理解することはあまりにも薄暗いです。

created_atのフィールドは表示されません。誰かが私を正しい方向に向けることができますか?

モデル

class holding_transaction(models.Model): 
    holdingname = models.ForeignKey(holding, on_delete=models.CASCADE) 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

admin.py

class holding_transactionAdmin(admin.ModelAdmin): 

    readonly_fields = ('created_at',) 

admin.site.register(holding_transaction, holding_transactionAdmin) 

編集:

+0

これを 'list_display'に追加しようとしましたか? – jcfollower

答えて

1

アップデート:ここで

Beatlesと呼ばれる架空のアプリケーションのために私のために働いていたコードは次のとおりです。

ビートルズ/ models.py:

from django.db import models 

# Create your models here. 

class Person(models.Model): 
    name = models.CharField(max_length=128) 
    created_at = models.DateTimeField(auto_now_add=True) 


    def __str__(self):    # __unicode__ on Python 2 
     return self.name 

ビートルズ/ admin.py

言及した質問への
from django.contrib import admin 

# Register your models here. 

from beatles.models import Person 


@admin.register(Person) 
class PersonAdmin(admin.ModelAdmin): 
    readonly_fields = ('created_at',) 

The answer、この現象が発生することは不可能であると述べています。それにもかかわらず

、あなたはこのようなフィールドを編集したい場合は、以下のように、the docsに従って作業を進める:

あなたはこのフィールドを変更できるようにしたい場合は、真= auto_now_addの代わりに次の を設定します。

For DateField: default=date.today - from datetime.date.today() 
For DateTimeField: default=timezone.now - from django.utils.timezone.now() 

あなただけ表示されるように、これらのフィールドをしたい場合は、following codeを使用することができます。

class YourModelAdmin(admin.ModelAdmin): 
    readonly_fields = ('created_at', 'updated_at',) 

admin.site.register(YourModel, YourModelAdmin) 
+0

私はそれらを表示したいだけです。私はあなたの2番目のブロックを試しましたが、成功していませんでした、私はそれを適用するために何か必要がありますか? – vandelay

関連する問題