2013-07-05 3 views
6

현재 암호/확인 암호 필드가있는 양식을 표시하는 UserRegistration보기를 만들고 있습니다. 문제는 Browsable API가 모델 정의에있는 필드 만 표시한다는 것입니다.Browsable API 양식을 수정하는 방법

  • 어떻게 사용자 정의 필드를 추가 할 수 있도록 양식을 조정해야합니까?

    class UserRegistrationSerializer(serializers.ModelSerializer): 
    
        password = serializers.CharField(
         max_length=128, 
         widget=widgets.PasswordInput, 
         label=_('Password') 
        ) 
        password_confirm = serializers.CharField(
         max_length=128, 
         widget=widgets.PasswordInput, 
         label=_('Confirm password') 
        ) 
    
        class Meta: 
         model = User 
         fields = ('id', 'name', 'username', 'email', 'password', 'registration_date') 
    
        def validate(self, attrs): 
         if attrs.get('password') and attrs.get('password_confirm'): 
          if attrs['password'] != attrs['password_confirm']: 
           raise serializers.ValidationError(_("Passwords do not match")) 
         return attrs 
    
  • 또한, 출력 시리얼 라이저의 입력 시리얼을 구별하는 가장 좋은 방법은 무엇입니까?

답변

0

장고 나머지 프레임 워크가 실제로 정상적인 사용 : 당신은 언급하지 않기 때문에

, 나는 당신이 http://django-rest-framework.org/

당신이 체크 아웃 할 수 있습니다 문서의 특정 부분은 사용하는 추측거야 Django Forms는 Browsable API 뷰로 렌더링됩니다.

당신이 사용하는 렌더러 수정하여 형태의 모양을 제어 할 수 있습니다

:이 생성 된 후 양식을 수정할 수 있는지 모르겠어요

class MyBrowsableAPIRenderer(BrowsableAPIRenderer): 
    # either 
    def get_context(self, *args, **kwargs): 
     context = super(MyBrowsableAPIRenderer, self).get_context(*args, **kwargs) 
     context["post_form"] = django.form.Form() # modify form here   

    # or 
    def get_rendered_html_form(self, view, method, request): 
     # do things here to create full Form 

@renderer_classes((JSONRenderer, MyBrowsableAPIRenderer)): 
    class MyViewSet(GenericViewSet): 
     pass 

: 예를 들어 http://www.django-rest-framework.org/api-guide/renderers#browsableapirenderer

을 , 나는 시도하지 않았다. 그렇지 않은 경우 양식을 만드는 전체 함수를 다시 작성할 수 있습니다. Form 필드를 추가하면 좋을 것입니다.

관련 문제