Python 无法在窗体中获取或创建对象
我正在尝试获取或创建一个对象,而另一个对象是使用窗体创建的:Python 无法在窗体中获取或创建对象,python,python-3.x,django,django-views,Python,Python 3.x,Django,Django Views,我正在尝试获取或创建一个对象,而另一个对象是使用窗体创建的: def index(request, log_id, token): log = get_object_or_404(LogBook, pk=log_id) logmessages = LogMessage.objects.filter(logbook=log_id) form = CreateLogMessage(request.POST) if request.method == "POST": if
def index(request, log_id, token):
log = get_object_or_404(LogBook, pk=log_id)
logmessages = LogMessage.objects.filter(logbook=log_id)
form = CreateLogMessage(request.POST)
if request.method == "POST":
if form.is_valid():
instance = form.save(commit=False)
instance.reported_by = request.user
instance.logbook = log
instance.save()
logdone = LogDone.objects.get_or_create(logmessage=logmessages, done_status=False)
我试图找到一种方法来获取创建的日志消息的id,并将其传递给我的logdone实例
到目前为止,我还没有找到一种方法来实现它,任何帮助都将不胜感激。所创建的对象就是实例,因此您可以将其实现为:
from django.shortcuts import redirect
def index(request, log_id, token):
log = get_object_or_404(LogBook, pk=log_id)
if request.method == 'POST':
form = CreateLogMessage(request.POST)
if form.is_valid():
form.instance.reported_by = request.user
form.instance.logbook = log
instance = form.save()
logdone = LogDone.objects.get_or_create(
logmessage=instance,
done_status=False
)
return redirect('name-of-some-view')
else:
form = CreateLogMessage(request.POST)
…
从django.shortcuts导入重定向
def索引(请求、日志id、令牌):
日志=获取对象或404(日志,pk=日志id)
如果request.method==“POST”:
form=CreateLogMessage(request.POST)
如果form.is_有效():
form.instance.reported_by=request.user
form.instance.logbook=log
instance=form.save()
logdone=logdone.objects.get\u或创建(
logmessage=instance,
完成状态=错误
)
返回重定向('name-of-some-view')
其他:
form=CreateLogMessage(request.POST)
…
由于表单每次都会创建一个新对象,因此始终会创建一个对象
注意:如果POST请求成功,您应该 实施。 这样可以避免在用户刷新日志时发出相同的POST请求 浏览器
注意:您可以将视图限制为具有
一如既往地感谢您的明确回答和帮助我(和其他人)改进代码的提示,我将查看文档并改进整个脚本。