[問題] Django Custom field 無法顯示出來

作者: HenryLiKing (HenryLiKing)   2019-08-23 22:47:17
大家好! 我之前都在使用 Flask 最近剛接觸 Django
我看到可以客製化自己的 admin 欄位
我想要自己做一個有額外功能的 ImageField
所以我繼承了 forms.ImageField
並在 Post Model 中加入這個欄位
# Model.py
class mImageField(forms.ImageField):
def clean(self, value, initial=None):
super(forms.ImageField, self).clean(value)
print("B64ImageField", type(value))
return value
class Post(models.Model):
title = models.CharField(max_length=50)
image_url = models.CharField(max_length=100,default="/static/images/xd.jpg")
image_select = mImageField()
最後在 admin.py 中設定我要用的 form
# admin.py
class PostmImgForm(forms.ModelForm):
class Meta:
model = Post
fields = "__all__"
class PostModelAdmin(admin.ModelAdmin):
form = PostmImgForm
# Register your models here.
# admin.site.register(Post)
admin.site.register(Post, PostModelAdmin)
# 結果
但是最後在 admin 的畫面中並沒有出現 image upload 的欄位!
不知道是什麼原因?
請教各位前輩了!
先謝謝大家!
作者: djshen (djshen)   2019-08-24 19:48:00
model field和form field是不同東西吧
作者: HenryLiKing (HenryLiKing)   2019-08-25 00:57:00
可是我有在 form field Meta 中定義要顯示 all 啊
作者: djshen (djshen)   2019-08-25 11:32:00
__all__應該只認model裡的model field吧你要思考model和form的角色是什麼

Links booklink

Contact Us: admin [ a t ] ucptt.com