我有一個在Django後端驗證器,choicefields等模型形式。我想通過它來反應和顯示它。首先是甚至可能的?我想用驗證器完成它,但html仍然很棒。原因是:ReactJS和Django的形式
- 避免在正面和背面的雙常數聲明。例如,選擇選項:「男性」,「女性」,「???」需要在後端進行驗證和前端進行顯示和驗證。
- 再次在表單前端構造整個html,儘管它也可以很容易地由django創建。主要擔心的是選擇具有許多不同自定義值的選項。
有一個名爲drf-braces具有FormSerializer但它似乎有問題包,我不斷地得到一個500錯誤「是不是JSON序列化的錯誤」,像:
name_or_event = CharFormSerializerField(error_messages={u'required':
<django.utils.functional.__proxy__ object>}, help_text='', initial=None,
label='Name', required=True, validators=[]) is not JSON serializable
這是如見於DRF-括號的DRF-括號基於串行形式系列化例如:
from drf_braces.serializers.form_serializer import FormSerializer
from myapp.forms import SignupDataForm
class MySerializer(FormSerializer):
class Meta(object):
form = SignupDataForm
並且基於rest-auth RegisterView的API視圖:
from myapp.serializers import MySerializer
class TestView(RegisterView):
permission_classes = (AllowAny,)
allowed_methods = ('GET',)
serializer_class = MySerializer
def get(self, *args, **kwargs):
serializer = self.serializer_class()
return Response({'serializer': serializer}, status=status.HTTP_200_OK)
如果我在瀏覽器中打開分配給TestView的url,我可以看到表單域。但是當從反應中加載ajax時,我得到了一個500,上面是「不是JSON序列化錯誤」。該調用是從React.component構造函數(如下圖)製作的。我不說出來會正確顯示領域,到目前爲止,主要是我試圖打印的響應到控制檯,看到拋出什麼樣的錯誤,但它不到風度走到這一步:
loadUserDetail() {
this.serverRequest = $.get("myUrl", function (result) {
console.log(result);
this.setState({
username: result.name_or_event,
email: result.email
});
}.bind(this));
}
任何其他的想法這個怎麼做?我的方法完全錯誤,對吧? :-)
查看此Q/A瞭解更多相同主題。 https://stackoverflow.com/questions/42297614/django-forms-with-reactjs/42299578#42299578 – pymarco