Django数据保存模型模板中没有表单



我想在不使用表单的情况下单击按钮时在数据库中保存一个值。我想在单击按钮时将h2中的值保存到另一个模型中。我能做什么?

模板

<div class="widget-main">
<center><h2 name="urun" value="{{ urun.urun_adi }} ">{{ urun.urun_adi }}</h2></center>
</a>
<input type="submit" onclick="location.href='{% url 'sepete_ekle' %}'"  value = "sepete ekle"  class="btn btn-sm btn-default pull-right">
Sepete Ekle
</input>
<a href="" class="btn btn-sm btn-success">{{urun.fiyat}} TL</a>
</div>

视图

def sepete_ekle(request):
if  request.method == 'POST':
urun = request.POST["urun"]
status = 0
urunler = Siparis.objects.create(urun,status)
urunler.save()
messages.success(request, " Sepete Eklendi")
return redirect('/bayi/profil_duzenle')
else:
return HttpResponseRedirect("/")

型号

class Siparis(models.Model):
bayi = models.ForeignKey('auth.User', verbose_name='bayi', on_delete=models.CASCADE, related_name='bayi',limit_choices_to={'groups__name': "BayiGrubu"})
urun = models.ForeignKey(Urun, on_delete=models.CASCADE)
adet = models.IntegerField()
tarih = models.DateTimeField()
status = models.BooleanField()
class Meta:
verbose_name = 'Bayi Sipariş'
verbose_name_plural = 'Bayi Siparişleri'

将您在问题声明中发布的html替换为以下html。

<div class="widget-main">
<center>
<h2>{{ urun.urun_adi }}</h2>
</center>
<form method="POST" action="{% url 'sepete_ekle' %}">
<input type="hidden" value="{{ urun.urun_adi }}" name="urun" />
<input
type="submit"
value="sepete ekle"
class="btn btn-sm btn-default pull-right"
/>
</form>
<a href="" class="btn btn-sm btn-success">{{urun.fiyat}} TL</a>
</div>

要了解更多关于表单隐藏字段的信息,这里有一个简单的解释供参考查看

一旦尝试过,我希望它能起作用。将view.py更改为此。在函数sepete_ekle中添加一个argument。

def sepete_ekle(request,urun):
if  request.method == 'POST':
status = 0    
urunler = Siparis.objects.create(urun,status)
urunler.save()
messages.success(request, " Sepete Eklendi")
return redirect('/bayi/profil_duzenle')
else:
return HttpResponseRedirect("/")

和urls.py对此:

path('/path/to/function/<urun>',views.sepete_ekle,name='sepete')

在你的html文件中:

<div class="widget-main">
<center><h2 name="urun" value="{{ urun.urun_adi }} ">{{ urun.urun_adi }}</h2></center>
</a>
<input type="submit" onclick="location.href='{% url 'sepete_ekle' %}'"  value = "sepete ekle"  class="btn btn-sm btn-default pull-right">
Sepete Ekle
</input>
<a href="{% url 'sepete' urun.urun_adi %}" class="btn btn-sm btn-success">{{urun.fiyat}} TL</a>
</div>

因此,当您单击按钮时,h2值将在url中发送,在视图中,它将从argument中获取。

最新更新