Django 将用户配置文件数据从客户端传递到服务器
Django passing user profile data from client to server
我正在使用具有此结构的OneToOneField
的自定义用户模型和用户配置文件:
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 框架对此很有用。
django rest 框架具有可以处理 json 和表单数据的视图,并将它们馈送到相同的验证机制中。它基本上使用内容类型标头为传入数据选择解析器(更多详细信息在这里(。也许你可以看看他们做了什么或直接使用库。
希望这有帮助。
也许你可以用FormParser
写一个ApiView
?
请参阅:http://www.django-rest-framework.org/api-guide/parsers/#formparser
相关文章:
- 客户端服务器REST API captcha实现
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 将客户端特定的日期格式返回到服务器MVC4
- 服务器上的Meteor客户端断开连接事件
- 在Javascript服务器/客户端中共享对象定义
- 可以't连接客户端和服务器import.io
- 套接字服务器向客户端广播,但不从两者接收
- 使用COMETD将服务器推送到客户端(dojo)
- 了解如何在javascript/HTML5/NodeJS中实现客户端-服务器-客户端基础结构
- 服务器过载..有要求?如何有效地对服务器-客户端进行编程
- Math.sin()在服务器/客户端上给出不同的结果
- Internet Explorer浏览器问题:浏览器不提交POST数据与Ajax请求,服务器/客户端挂起
- 如何在连接服务器客户端之前获得IP地址(使用websockets/ws)
- Node.js服务器/客户端模块混乱,EventEmitter问题
- 服务器-客户端推/拉连接是如何工作的
- 如何执行在服务器/客户端使用回调参数的javascript函数
- 最好的jQuery/Java PHP解决方案为本地主机服务器-客户端实时聊天