[英]Django Passing objects from template to view
我真的很喜歡 django 模板語言,但是當涉及將多個字符串從模板傳遞給視圖時,我不知道。 因此,我想弄清楚要使用哪種現代工具。
您建議接下來學習什么來處理此類任務,或者在 Django 中是否有我尚未發現的方法?
編輯:我知道查詢對象。 我正在尋找的是將對象及其所有屬性傳回。
一個簡單的 foo 模型:
class foo(models.Model):
name = models.CharField(max_length=75)
categories = models.ManyToManyField(Category)
def __str__(self):
return self.name
我通過foos = foo.objects.all()
將實例傳遞給模板。 在模板上,他們像這樣處理:
在這里,作為具有自動完成功能的文本字段:
<form method="POST" action="/path/">
{% csrf_token %}
<input type="text" class="btn btn-default" name="foo" list="foos">
<datalist id="foos">
{% for foo in foos %}
<option value="{{ foo }}">
{% endfor %}
</datalist>
<button class="btn btn-default">send</button>
</form>
作為每個 foo 實例的圖塊:
<form method="POST" action="/path">
{% csrf_token %}
<ul class="wrapper">
{% for category_ in categories %}
{% for foo in foos %}
{% if category_ in foo.categories.all %}
<input name="foo" type="submit" value="{{ foo }}" class="box box_text">
{% endif %}
{% endfor %}
{% endfor %}
</ul>
</form>
在request.POST
我將 foo 名稱作為字符串。 我想將整個實例發送回視圖進行處理。 它也可以只發送foo.id
。 但我不知道如何將foo.id
放入模板而不顯示在foo.name
旁邊,而是在request.POST
作為變量發送。
除了那個問題之外,我想建議您為此類任務學習什么技術(JSON、Ajax...)
在沒有看到foo
對象實際上是什么樣子的情況下,我將假設發生了以下情況:
foo
。__str__
魔術方法或__unicode__
。 如果您只想打印名稱,然后僅打印 id,只需專門打印這些屬性,而不僅僅是foo
,如下所示:
<option value="{{ foo.id }}">{{ foo.name }}</option>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.