我有一个 models.ForeignKey 的子类,其唯一目的是使用自定义小部件:
from django.db import models
from .models import Images
class GAEImageField(models.ForeignKey):
def __init__(self, **kwargs):
super(GAEImageField, self).__init__(Images, **kwargs)
def formfield(self, *args, **kwargs):
field = forms.ModelChoiceField(self, widget=ImageUploadWidget, *args, **kwargs)
field.queryset = Images.objects.all()
return field
问题是,当我尝试使用此字段时,__init__
将忽略任何参数。例如,如果我尝试这个模型:
class SomethingWithImage(models.Model):
name = models.CharField('Awesome name', max_length=64)
image = GAEImageField(verbose_name='Awesome image', blank=True)
...尽管我指定了verbose_name,但生成表单上的标签将是“图像”,即使我使用空白=真,尝试指定空值也会引发错误