Я думаю, что это может быть ошибка в modelformset_factory в Django 1.2, но я бы хотел, чтобы кто-нибудь еще дважды проверял это (возможно, в новых версиях djnago).modelformset_factory исключает слишком много полей
Just for the courious people - модели представляют собой возможные баллы и наборы из них, доступные для отчетов о подготовке работников.
models.py:
class ScoreSet(Model):
unit = ForeignKey(Unit)
description = CharField(max_length=20, verbose_name='description')
class Score(Model):
scoreset = ForeignKey(ScoreSet)
score = CharField(max_length=8, verbose_name='score')
description = CharField(max_length=30, verbose_name='description')
и теперь:
FormSet = modelformset_factory(Score, exclude='scoreset', extra=5, can_delete=True)
будет производить formset, не scoreset и без очков поле. Если вы измените имя поля «scoreset» на что-нибудь еще (например, «ss»), он отлично работает и исключает только поле «ss».
Вы правы. Благодарю. В любом случае это странное поведение, которое exclude = 'scoreset' работает, и исключает как «score», так и «scoreset», в то время как exclude = 'ss' исключает только 'ss'. – Marek
Если вы используете неправильные типы в Python, вы можете получить неожиданное поведение. В этом случае обратите внимание на то, что 'score in 'scoreset'' оценивается как True, но' score in' ss'' этого не делает. – Alasdair