0

我只想收集字段名类型是日期时间

_meta.get_fields() 

模型.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)

管理员.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)

什么是解决方案?

4

1 回答 1

1

使用列表推导作为

from django.db.models import DateTimeField

datetime_model_fields = [field for field in MyModelClass._meta.get_fields() if isinstance(field, DateTimeField)]
于 2020-09-09T06:01:46.567 回答