Я пытаюсь отобразить inlineformset, но атрибут "extra", похоже, игнорируется. Рассмотрим следующие модели:
class Foo_model(models.Model):
fooName = models.CharField(max_length=LIL_STRING)
bars = models.ForeignKey("Bar_model")
class Bar_model(models.Model):
barName = models.CharField(max_length=LIL_STRING)
формы:
class Foo_form(ModelForm):
class Meta:
model = Foo_model
class Bar_form(ModelForm):
class Meta:
model = Bar_model
Bar_formset = inlineformset_factory(Foo_model,Bar_model,formset=Bar_form,extra=23)
вид:
def ViewFoo(request, model_id=False):
if model_id:
model = Foo_model.objects.get(pk=model_id)
else:
model = Foo_model()
form = Foo_form(instance=model)
formset = Bar_formset(instance=model)
return render_to_response('form.html', {'form' : form, 'formset' : formset }, context_instance=RequestContext(request))
и шаблон:
<html>
<form method="POST" action="">
{% csrf_token %}
<div>
{{ form }}
{{ formset }}
</div>
<input class="button" type="submit" value="Submit"/>
</form>
</html>
Это показывает только один экземпляр Bar_form, когда он должен показывать 23 («extra = 23»). Есть идеи, что я делаю не так?
Спасибо
Обновление:
Оказывается, часть проблемы в том, что все мои классы моделей наследуются от одного базового класса. Если я заставлю их просто наследоваться от моделей. Модель, то проблема исчезнет (хотя другие проблемы поднимают их уродливые головы). Я до сих пор хочу, чтобы они унаследовали от одного класса, поэтому мой оригинальный вопрос остается.
Обновление Обновление:
Создание базового класса моих моделей абстрактным:
class BaseClass(models.Model):
class Meta:
abstract = True
Кажется, чтобы сделать трюк. Теперь у меня могут быть ForeignKeys и ManyToManyFields между моими классами.