繁体   English   中英

Django 数据保存 model 模板中没有表格

[英]Django data save model without form in template

当单击按钮而不使用表单时,我想在数据库中保存一个值。 单击按钮时,我想将 h2 中的值保存到另一个 model 。 我能做些什么?

模板

                                              <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("/")

MODEL

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 替换为以下问题。

    <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 更改为此。 为您的 function sepete_ekle 添加一个论点。

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 中发送,并且在视图中它将取自争论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM