Почему мое исключенное поле все еще отображается в этой форме Django?

Я использую exclude в классе Meta моей формы, чтобы исключить поле из моей формы, которое я хочу заполнить программно, но он все еще отображается в форме.

Вот несколько отрывков из кода:

# Model
class Info(models.Model):
    completed_by = models.ForeignKey(User, related_name='+')

# Form
class InfoForm(forms.ModelForm):
    class Meta:
        model = Info
        exclude = ('created_by',)  #ETA: added comma to make this a tuple
        widgets = {
            'some_other_field': forms.HiddenInput(),
            'some_other_field2': forms.DateInput(attrs={'readonly': True}),
        }

# View
form = InfoForm(initial={'some_other_field': value}, 
                          prefix='info', instance=info)
return direct_to_template(request, 'myapp/info.html', locals())

# Template
<form class='uniForm' method='POST'>
{% csrf_token %}
<fieldset class='inlineLabels'>{{ form|as_uni_form }}</fieldset>
<input type='submit' name='action' value='Save' />
</form>

Кажется, это должно быть довольно просто, и я знаю, что делал это успешно раньше. Я удалил / воссоздал свою БД и очистил кеш браузера, чтобы убедиться, что это не фактор. Я также попытался сделать его полем HiddenInput , как и some_other_field (которое также является полем ForeignKey ), но оно все еще отображается в форме.

Я что-то упускаю? Uni_form как-то отменяет настройку? Если нет, то какие-нибудь советы относительно того, что я мог бы искать при отладке, чтобы узнать, где / почему это происходит?

(Используя Django версии 1.2.7)

11
задан Ennael 15 November 2011 в 16:10
поделиться