我使用的是自定義的用戶模型,使用OneToOneField
這種結構的用戶配置文件:Django的傳遞用戶配置文件數據從客戶端到服務器
email
password
profile : {
username
avatar
}
它適用於移動相當不錯,因爲我基本上只是發回JSON但這是一個問題,每當我在網站上使用我的API,因爲沒有辦法在html中發送類似json的數據,因此我無法在不使用ajax的情況下填充「配置文件」字段。
我寧願有可能使用純html格式,並使用javascript只用於客戶端驗證和動畫不使用它批評功能,如註冊。
我也可以使用下面的結構,然後重新構建配置文件服務器端的字典,但我確實覺得這不夠通用。
email
password
username
avatar
UserSerializer.py
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
profile = ProfileSerializer(required=True)
class Meta:
model = get_user_model()
fields = ('id', 'email', 'password', 'date_joined', 'profile')
def create(self, validated_data):
#profile_data = validated_data.pop('profile')
password = validated_data.pop('password')
user = get_user_model().objects.create_user(**validated_data)
user.set_password(password)
#user.save()
print(user)
#print(profile_data
ProfileSerializer.py
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ('username',)
所以不管我使用JSON或形式的數據,顯然,這是在等待一個配置文件(對象)的數據。我希望能夠使用html表單來完成。
任何想法我應該如何處理?
我已經在使用django rest框架。我將用我的序列化器更新我的問題,也許它會更清楚。 – soueuls