2014-05-21 2 views
3

장고 관리 사이트의 문서를 읽고 나면 내가 직접 다음과 같은 규칙을 유지하여 형태로 관련 모델의 필드를 추가 할 수있는 방법을 아직 확실 해요 : 모델 소스의Django에서 편집 가능한 관련 모델 필드 admin?

  • 직접 수정하지있었습니다. 원숭이 패치 또는 하위 클래스 화만 가능합니다.
  • 필드는

단순화 된 예를 저장 형태에 업데이트 관련 모델 레코드, 편집 할 필요가 별도의 인라인 관리 모델에서 아니, 형태 필드 셋의 기존 필드 사이에 삽입해야합니다 다음과

from django.db import models 
from django import forms 

class Order(models.Model): 
    contact = models.ForeignKey(Contact, verbose_name=_('Contact')) 
    bill_addressee = models.CharField(_("Addressee"), blank=True) 

class Contact: 
    email = models.EmailField(_("Email"), blank=True, max_length=75) 

class OrderAdminForm(forms.ModelForm): 
    fieldsets = (
     (_('Billing Address'), {'classes': ('collapse',), 'fields': (
      'organization_name', 'bill_addressee', 'bill_street1', 'bill_city', 
      'email',) }) 
     # ^^^^^^ <-- need related model field directly 
     ) 

    class Meta: 
     model = Order 

읽기 전용 입력란의 경우 매우 간단합니다. 관련 모델 필드를 반환하는 메소드를 정의하고 readonly_fields 속성에 입력하십시오. 그러나 편집 가능한 것은 어떨까요?

답변

0

당신은 단순히 '필드'목록에 Contact.email를 포함 할 수 있습니다 :

'fields': ('organization_name', 'bill_addressee', 'Contact.email',) 
+0

시도하지만 오류를 다음과 같은 방법 :'''ImproperlyConfigured 'OrderAdminForm.fieldsets [3] [1] ['필드 '] '양식에서 빠진'Contact.email '필드를 참조합니다 .'''. 이런 식으로 외국 모델 필드를 참조 할 수 있습니까? –

+0

작동하지 않음 : 'Baz에 대해 알 수없는 필드 (foo.bar)가 지정되었습니다 .' – angrykoala

관련 문제