[英]How can i display database data on a Django form?
我創建了一個頁面,用戶可以在其中提交訂單。 該訂單已提交到SQLite數據庫,並具有以下字段: 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()
如果我正確理解您的問題,也許您可以嘗試以下方法:
views.py
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
send = form.save(commit=False)
send.user = request.user # set the currently logged in user
send.save()
else:
form = MyForm()
# fetch it from database then render it to the template
active_orders = MyModel.objects.filter(user=request.user)
context = {
'form': form,
'active_orders': active_orders
}
return render(request, "main/mytemplate.html", context)
然后,在您的模板中
<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>
{% for active_order in active_orders %}
<p> {{active_order.time}} - {{active_order.time}} - {{active_order.rate}} - {{active_order.user.id}}</p>
{% endfor %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.