0
저는 ForiegnKey로 연결된 두 개의 모델을 가지고 있고 django-crispy-forms를 사용하여 PhoneNumber 모델의 필드를 내 양식에 사용하고 싶습니다.django-crispy-forms의 필드로 연결된 테이블의 필드를 사용하는 방법은 무엇입니까?
'phone_number__number'구문을 사용하여 시도했지만 양식의 빈 드롭 다운 목록 만 제공합니다. 단지 PHONE_NUMBER 필드로,
class Customer(models.Model):
phone_number = models.ForeignKey(PhoneNumber)
class PhoneNumber(models.Model):
TYPES = (
('Cell', 'Cell'),
('Home', 'Home'),
('Fax', 'Fax'),
('Work', 'Work'),
)
primary = models.BooleanField(default=False)
phone_type = models.CharField(max_length=30, choices=TYPES, default='Cell')
number = models.CharField(max_length=15)
그리고 내 양식 : 여기
이 게시물에 대한 고객 모델 꺼내 PHONE_NUMBER하지만 모든 것을, 내 모델입니다
class CustomerCreateForm(forms.ModelForm):
'''
Base form for creating customers
'''
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
'Personal Information',
'phone_number__number',
),
FormActions(
Submit('submit' , 'Submit' , css_class='btn btn-success'),
Button('cancel' , 'Cancel' , css_class='btn btn-warning', onclick='javascript:history.go(-1);'),
)
)
super(CustomerCreateForm, self).__init__(*args, **kwargs)
class Meta:
model = Customer
exclude = (
'create_user',
'modify_user'
)
숫자 필드는 CharField 여야하며 ModelChoiceField가 아니어야합니다. 나는 전화 번호를위한 일련의 선택을 표시하려고하지 않고 주어진 전화 번호를위한 텍스트 상자를 표시하려고한다. –