【发布时间】:2019-04-07 16:37:45
【问题描述】:
我正在尝试从 QuerySet 中保存返回的项目,以便稍后它将在下一个模板中显示所有已保存的项目。但是不知道怎么办?
1.) 如何正确地将“镜头”发送到数据库??
我的models.py
class City(models.Model):
name = models.CharField(max_length=100)
class User(models.Model):
name = models.CharField(max_length=100)
city = models.ForeignKey(City, on_delete=models.CASCADE)
class UserDecision(models.Model):
decision = models.BooleanField(default=False)
relation = models.ManyToManyField(User)
我的意见.py
from django.shortcuts import render
from .models import User
from .forms import UserDecisionForm
def random_views(request):
shot = User.objects.all().order_by('?')[:1]
#Begining form here
if request.method == "POST":
form = UserDecisionForm(request.POST)
if form.is_valid():
decision = form.save(commit=False)
decision.relation = shot #<--- how to pass this element to the database automatically. According to the result returned from the QuerySet query.
decision.save()
else:
form = UserDecisionForm()
# other elements
context = {'shot': shot, 'form':form }
return render(request, 'index.html', context)
forms.py
from django import forms
from .models import UserDecision
class UserDecisionForm(forms.ModelForm):
class Meta:
model = UserDecision
fields = ('decision',)
【问题讨论】:
-
shot是一个数组,你可能错过了。你想通过分配给pk来实现什么?您是否尝试复制随机用户并将其显示在模板中? -
pk - 是我尝试进行的尝试的残余,按照文档行事。是的,我正在尝试复制一个随机用户,以便我可以显示它。我知道如何从表单中保存数据以及如何创建它。但是如何从 QuerySet 中保存结果,例如 (all() 或 order_by('?'))。我必须创建一个单独的模型吗?如果是这样,如何将查询集结果传递给模型?我正在学习 django,但还没有找到合适的例子。
-
你的问题我不清楚。您是在问如何将某些内容分配给
decision.relation?如果是这样,请查看docs.djangoproject.com/en/2.1/topics/db/examples/many_to_many
标签: python django django-queryset