2010-12-22 4 views
1

나는 내 모델에 ForeignKey 필드를 가지고 있으며,이 필드에 ModelForm을 사용하여 HTML을 생성합니다. 문제는, Other 옵션을 추가하고 싶습니다. JavaScript가 추가 될 때 텍스트가 표시되도록 JavaScript를 추가 할 계획입니다.django ModelForm 재정의 필드가 적용되지 않음

나는 http://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#overriding-the-default-field-types-or-widgets보고, 대신 문자 필드의 텍스트 필드가되어야

class Event(models.Model): 
    name = models.CharField(max_length=200) 
    time = models.DateField() 
    . 
    . 
    . 
    cost = models.CharField(max_length=200) 
    affiliation = models.ForeignKey('Affiliation') 
    def __unicode__(self): 
     return self.name 

class EventForm(ModelForm): 
    cost = models.TextField() 
    class Meta: 
     model = Event 

cost 같은 것을 시도 진형 때문에 출력은 textarea 대신 input[type=text]해야 해요. 이것은 변경되지 않지만 오류는 인쇄되지 않으며 실제로는 아무 것도 발생하지 않습니다. 내가 도움이된다면 내가 GAE에서 장고 - nonrel을 사용하고

class EventForm(ModelForm): 
    affiliations = list(Affiliation.objects.all()).append('Other') 
    affiliation = forms.CharField(choices=affiliations) 
    class Meta: 
     model = Event 

을 수행하여 진행 기대했다, 그러나 이것은 정말 모델에 문제가되지 않습니다 (또는 그래서 나는 생각 ...) 나는 돈 때문에 그것이 무엇인가를 바꿔야한다고 생각하지 않습니다. 어떤 도움을 많이 주시면 감사하겠습니다!

답변

2

I 피난처 '해야 할 때 EventForm가 models.TextField()과 비용을 무시된다는 것이다 보여 django-nonrel을 사용 했으므로이 팁을 소금 한 조각 (YMMV)으로 찍으십시오. 당신의 EventForm 정의에서

, 당신은 model.TextFieldcost을 설정하는 - 그러나 당신은 실제로 텍스트 영역 위젯, 그것은 forms.CharField되고 싶어요.

+0

forms.TextField가 존재하지 않습니다. 'CharField에 텍스트 영역이 입력되었습니다. :) –

+0

Whoops - http://docs.djangoproject.com/en/dev/topics/forms의 잘못된 열을보고있는 것처럼 보입니다./modelforms/# field-types - 업데이트되었습니다. 팁을 제공해 주셔서 감사합니다. :) – girasquid

+0

고마워, 나는 그것이 내가 불평없이 그것을 놓아 버리게하는 방법에 의해 버려진 것 같아.) : 평균. – munchybunch

1

귀하의 문제가 forms.CharField(widget=forms.Textarea())

관련 문제