【发布时间】:2019-08-02 14:07:30
【问题描述】:
我创建了一个用户提交订单的页面。订单提交到 SQLite DB 并具有以下字段:Time - Status - Rate - UserID。提交订单后,我希望我的 django 模板显示在页面的“活动订单”部分下方。
我不知道如何在代码方面做到这一点,但我发现我需要创建一个对 db 的查询,其中所有用户的订单都被获取(可能是获取 ID = 用户 ID 的订单?) .
我如何能够在 Django 中执行这样的操作?在我看来?
这是模板的视图:
def myview(request):
item = get_object_or_404(market, item=item)
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
send = form.save()
send.save()
messages.success(request, f"Success")
else:
form = MyForm()
return render(request,
"main/mytemplate.html",
context={"form":form})
以及部分模板:
<form method="post" novalidate>
{% csrf_token %}
{% include 'main/includes/bs4_form.html' with form=form1 %}
<button name="button1" type="submit" class="btn btn-primary">BUY</button>
</form>
<h3> ACTIVE ORDERS </h3>
<p> Here should go the orders... </p>
表格:
class MyForm(forms.ModelForm):
status = forms.CharField()
rate = forms.FloatField()
class Meta:
model = MyModel
fields = ("status", "rate")
def save(self, commit=True):
send = super(MyForm, self).save(commit=False)
if commit:
send.save()
return send
型号:
class MyModel(models.Model):
rate = models.FloatField()
user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True, null=True, editable=False)
time = models.DateTimeField(auto_now_add=True)
status = models.CharField(max_length=50)
def save(self): # ALL the signature
super(MyModel, self).save()
【问题讨论】:
-
请分享
bs4_form.html和MyForm的代码 -
立即添加
-
您的问题令人困惑。您似乎不想在表单上显示它,而是在单独的页面上显示它。是的,写一个视图和一个模板正是你要做的;你的问题到底是什么?你在哪里写这些有困难?
-
@DanielRoseman 我没有说我希望它出现在另一个页面上。它是这样工作的:用户提交订单并在同一页面上的“活动订单”下显示订单中提交的数据。我只是不知道如何“查询”数据库以在 django 中检索该数据
-
但是您没有做任何事情来将订单记录为与用户关联。
标签: python django django-forms django-templates django-views