如何将Kivymd界面获取的邮箱地址存入Django模型?
KivyMD提交邮箱到Django DRF返回400错误
问题排查与修复步骤:
Django模型字段定义错误
你的模型代码里字段定义写错了,导入的是models,应该用models.EmailField()而非Model.EmailField(),同时建议不要用Model作为模型类名,避免和父类models.Model混淆:from django.db import models class UserModel(models.Model): user_mail = models.EmailField()KivyMD端POST请求语法错误
提交请求的代码存在两处问题:- 语法错误:
json('user_mail':'email')不是合法的Python语法,requests.post的json参数需要传入字典,且用关键字参数赋值 - 变量传递错误:你传的是字符串
'email',而不是获取到的邮箱变量email
修正后的代码:
def data(self): email = self.screen.ids.email_id.text # 修正请求参数格式与变量传递 response = requests.post(url, json={'user_mail': email}) # 打印响应内容查看具体错误详情 print(response.json())- 语法错误:
URL路径异常
请求日志显示路径为/users//,存在多余的斜杠,检查url变量的拼接逻辑,确保路径符合DRF的路由配置(比如应为/users/或/users)。
另外,400错误属于客户端请求错误,打印response.json()能获取DRF返回的具体错误提示(比如邮箱格式不合法、字段名不匹配等),可以进一步定位问题。
内容的提问来源于stack exchange,提问作者Ysmaýl
相关产品推荐
相关产品推荐

