问题描述: 当使用部分视图加载数据并进行修改后,提交数据时发现部分视图的数据未被提交。
解决方法:
示例代码:
主视图:
from django.shortcuts import render
from .models import Post
from .forms import PostForm
def post_list(request):
posts = Post.objects.all()
form = PostForm()
return render(request, 'post_list.html', {'posts': posts, 'form': form})
部分视图:
from django.shortcuts import render, get_object_or_404
from .models import Post
from .forms import PostForm
def update_post(request, post_id):
post = get_object_or_404(Post, pk=post_id)
if request.method == 'POST':
form = PostForm(request.POST, instance=post)
if form.is_valid():
form.save()
else:
form = PostForm(instance=post)
return render(request, 'update_post.html', {'form': form})
示例代码:
主视图:
from django.shortcuts import render
from .models import Post
from .forms import PostForm
def post_list(request):
posts = Post.objects.all()
form = PostForm()
return render(request, 'post_list.html', {'posts': posts, 'form': form})
部分视图:
from django.shortcuts import render, get_object_or_404
from .models import Post
from .forms import PostForm
def update_post(request, post_id):
post = get_object_or_404(Post, pk=post_id)
if request.method == 'POST':
form = PostForm(request.POST, instance=post)
if form.is_valid():
form.save()
else:
form = PostForm(instance=post)
return render(request, 'update_post.html', {'form': form})
post_list.html:
示例代码:
部分视图:
from django.shortcuts import render, get_object_or_404
from .models import Post
from .forms import PostForm
def update_post(request, post_id):
post = get_object_or_404(Post, pk=post_id)
if request.method == 'POST':
form = PostForm(request.POST, instance=post)
if form.is_valid():
post = form.save(commit=False)
# 在保存数据前可以进行其他处理
post.save()
else:
form = PostForm(instance=post)
return render(request, 'update_post.html', {'form': form})
以上是几种常见的解决部分视图数据未被提交的方法,可以根据具体情况选择适合的解决方案。