django模型_meta.get_fields()仅日期时间字段

时间:2020-09-09 05:49:50

标签: django django-models django-modeladmin

我只想收集字段名称类型为datetime

_meta.get_fields() 

Model.py:

class testmodel (models.Model):
    name = models.CharField(max_length=200)
    field = models.CharField('field', max_length=50, choices=(), default=None)
    create_time = models.DateTimeField(null=True,blank=True)
    complete_time = models.DateTimeField(null=True,blank=True)

admin.py:

all_fields = [f.name for f in testmodel._meta.fields]

class myform(forms.ModelForm):
field = forms.ChoiceField(choices=all_fields)
name = forms.TextInput()

class MyModelAdmin(admin.ModelAdmin):
   fields = ('name', 'field',)
   list_display = ('name', 'field',)
   form = myform

admin.site.register(testmodel,MyModelAdmin)

对此有什么解决方案?

1 个答案:

答案 0 :(得分:1)

列表理解 用作

from django.db.models import DateTimeField

datetime_model_fields = [field for field in MyModelClass._meta.get_fields() if isinstance(field, DateTimeField)]