Почему при установлении атрибутов width и height в поле модели ImageField выдается ошибка?
Потому что эти артибуты не задают ширину и высоту рисунка. Они задают названия полей, в которые джанга запишет актуальную ширину и высоту загруженной картинки.  Типа того: class MyModel(models.Model):
    img_width = models.PositiveIntegerField(null=True)
    img_height = models.PositiveIntegerField(null=True)
    image = models.ImageField(upload_to='photos', height_field='img_height', width_field='img_width', max_length=100)
А зачем оно тогда вообще нужно?