python - 保存外键对象 django 表单
问题描述
我面临一个问题,我无法在我的 on 上解决它,所以我需要你的帮助。我正在使用 django 表单保存配置文件对象,它在我的本地系统上运行良好,但是当我将它部署到服务器上时,它给了我一个错误消息:
无法分配“'demo'”:“Profile.company”必须是“Company”实例。
演示是我从前端获得的公司名称
模型.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
company = models.ForeignKey(Company,on_delete=models.CASCADE)
表格.py
class ProfileForm(forms.ModelForm):
company = forms.CharField(
widget=forms.TextInput(
attrs={
"placeholder": "Company",
"class": "form-control"
}
))
class Meta:
model = Profile
fields = ('company',)
视图.py
company = Company.objects.filter(company_name=request.POST["company"]).first()
form = SignUpForm(request.POST)
p_form = ProfileForm(request.POST)
if form.is_valid() and p_form.is_valid():
u_user = form.save()
p_form = p_form.save(commit=False)
p_form.user = u_user
p_form.company = company
p_form.save()
解决方案
没有关于公司模型/数据库的更多信息,不能 100% 确定这个解决方案。但是根据之前移动我的项目的经验,您确定您在带有新数据库的服务器上的公司模型包含任何company=Company.objects.filter(company_name=request.POST["company"]).first()
要返回的对象吗?
看起来您在views.py 中查询一家名为“demo”的公司,用作您个人资料的ForeignKey。你确定这是返回一个公司的实例吗?
推荐阅读
- uiscrollview - 为什么滚动时 UIScrollView 会颠簸
- kotlin - 我需要手动停止处理程序吗?
- java - 选择时如何将颜色箭头图标更改为 JMenu
- javascript - nodejs中连接模块的顺序是什么?
- c++ - 信号:分段错误 (11) 信号代码:无效权限 (2)
- c - 用于打印数组中元素位置的C函数不起作用
- python - 我在 python 中的代码因未知原因重复出现
- java - Springboot JAR 文件 500s
- python - sqlite3.OperationalError:没有这样的表:my_boardgames 但它在那里
- bash - 每多个分隔符拆分一个字符串