2012-01-13 2 views
1

인라인 집합을 렌더링하려하지만 "추가"특성이 무시 된 것 같습니다.django inlineformset_factory 추가 속성이 무시되고 있습니까?

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을 보여줘야한다 ("추가 = 23"). 내가 뭘 잘못하고 있는거야?

감사


업데이트 :

그것은 문제의 일부가 내 모델 클래스의 모두 같은 기본 클래스에서 상속 것으로 밝혀졌습니다. 모델에서 상속 받도록 만들면 모델이 사라집니다. 문제는 사라집니다 (다른 문제는 추악한 머리를 뒤에서 떼어 놓을지라도). 여전히 은 하나의 클래스에서 상속하는을 원하므로 내 원래 질문이 남아 있습니다.


업데이트 업데이트 : 내 모델 '기본 클래스의 추상적 만들기

는 :

class BaseClass(models.Model): 
    class Meta: 
     abstract = True 

트릭을 할 것으로 보인다. 내 클래스 사이에 ForeignKeys 및 ManyToManyFields를 가질 수 있습니다. 외래 키가 Foo 모델에 존재하기 때문에

답변

0

, 당신은 만들 필요거야 FooFormSet (그렇지 않으면, 논리적으로, 그 형태가 포함됩니다 무엇으로 이해가되지 않습니다).

+0

답장을 보내 주셔서 감사합니다. 나는 ForeignKeys에 대해 매우 혼란 스럽다. 피자가 많은 토핑을 가질 수 있다고 표현하고자한다고 가정 해 보겠습니다. "Topping"클래스의 ForeignKey 인 "Pizza"클래스의 "topping"필드가 아닙니까? 그리고 여러 토핑을 추가한다고 가정 할 때, "Topping_formset = inlineformset_factory (Pizza, Topping)"인라인 모델을 사용할 수 없습니까? 당신은 그 반대를 제안하는 것 같습니다. – trubliphone

관련 문제