如何解决选择字段形式的Django实际值
我有这样的模型:
class Projects(models.Model):
project = models.CharField(max_length=150,blank=True,null=True)
def __str__(self):
return self.project
class Profile(models.Model):
user = models.OnetoOneField(get_user_model(),on_delete=models.CASCADE)
project = models.ForeignKey(Projects,on_delete=models.CASCADE,null=True,blank=True)
def __str__(self):
return self.user.username
class ProjectForm(ModelForm):
class Meta:
model = Profile
fields = [
'project'
]
我的视图如下:
def change_project(request,user):
user = User.objects.filter(username=user)[:1].get()
profile = Profile.objects.get(user=user)
form = ProjectForm(request.POST,instance=profile)
if request.method == 'POST':
if form.is_valid():
form.save()
context = {'form': form}
return render(request,'datafiller/change_project.html',context)
我可以使用此表单更改项目,但是每次我想再次使用looks like this表单
如何显示当前项目而不是“ ------”?
解决方法
如果您使用GET请求来渲染表单,则不应将ProjectForm
放下:
from django.shortcuts import get_object_or_404
def change_project(request,user):
profile = get_object_or_404(Profile,user__username=user)
if request.method == 'POST':
form = ProjectForm(request.POST,instance=profile)
if form.is_valid():
form.save()
else:
form = ProjectForm(instance=profile)
return render(request,'datafiller/change_project.html',{'form': form})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。