python-如何在Django ModelForms中加载实例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-如何在Django ModelForms中加载实例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1223字,纯文字阅读大概需要2分钟。
内容图文
![python-如何在Django ModelForms中加载实例](/upload/InfoBanner/zyjiaocheng/696/bb04fae3725c489c92e5e63929356ca7.jpg)
我正在使用Django的用户模型.
如何获得Django ModelForm来预填充模板中的值?我知道我必须为该表单使用实例,但是下面我在哪里出错:
models.py:
class Site(models.Model):
user = models.ForeignKey(User, )
site_name = models.CharField(max_length=128, blank=False, null=False)
forms.py:
class SiteForm(forms.ModelForm):
class Meta:
model = Site
fields = '__all__'
views.py:
def settings(request):
site_profile = Site.objects.get(user=request.user)
if request.method == "POST":
form = SiteForm( instance=site_profile )
if form.is_valid():
form.save()
return redirect('dashboard_home')
else:
form = SiteForm()
return render(request, "dashboard/settings.html", {'form': form })
此代码返回的页面没有错误,但是不会使用数据库中的值预填充表单字段.
我只能假设实例未正确加载?
解决方法:
def settings(request):
if request.method == "POST":
form = SiteForm(request.POST, instance=request.user.site_profile)
if form.is_valid():
form.save()
return redirect('dashboard_home')
site_profile = Site.objects.get(user=request.user)
form = SiteForm(instance=site_profile)
return render(request, "dashboard/settings.html", {'form': form })
缩进已关闭,您从未将site_profile传递给表单以进行填充.在POST请求的情况下,您不想将旧版本的site_profile传递给表单.我假设您想要用户在模板中填写的新值.
内容总结
以上是互联网集市为您收集整理的python-如何在Django ModelForms中加载实例全部内容,希望文章能够帮你解决python-如何在Django ModelForms中加载实例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。