自分はその辺の面倒くさいところテンプレートでやってる
widgetを書く方法もあるけどテンプレートの方がしっくりくる

class Hoge(Model):
 name = BooleanField()

のモデルがあるとしてこのモデルフォームのテンプレート変数名がformだとした場合

{% for field in form %}
<label>{{ field.label}}</label>{{ field }}

みたいな感じで自由に組める
あとはHTMLとCSSでお好きなように

この辺も参考にしてみて
ttps://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs#customizing-the-form-template