javascript - 下拉列表中字典的值

标签 javascript python django drop-down-menu html-select

我的models.py如下:

class SellerMarketplaces(models.Model):
id = models.IntegerField(db_column='ID',primary_key=True)  # Field name made lowercase.
seller_id = models.ForeignKey('Sellerdetails',db_column='Seller_ID')  # Field name made lowercase.
mk_id = models.ForeignKey('Marketplace',db_column='Mk_ID')  # Field name made lowercase.
username = models.CharField(db_column='Username', max_length=100, blank=True, null=True) 

我的 View 中有以下代码

def marketplaces(request):  
  seller = request.GET.get('seller', '')
  allmarketplaces = SellerMarketplaces.objects.filter(seller_id = seller).values('mk_id__marketplace')
  for i in range(len(allmarketplaces)):
    print allmarketplaces[i]['mk_id__marketplace']
  return render_to_response(request,'soumi1.html',{'marketplaces':marketplaces})

我从 print allmarketplaces[i]['mk_id__marketplaces] 行获取值(Flipkart 和 Snapdeal),但返回给我一个 500 错误。

我的 html 文件是:

        <select  name="marketplace" id="txtHint" size="1" required>
      <option value="">Select Marketplace</option>
        {% if marketplaces.count > 0 %}
          {% for marketplace in marketplaces %}
            <option value = {{ marketplace.id }}>{{ marketplace.marketplace }} </option>
          }
        {% endfor %}
        {% endif %}

我使用的 JavaScript 是:

  function showUser(str) {
  if (str=="") {
   document.getElementById("txtHint").innerHTML="";
   return;
   }
  if (window.XMLHttpRequest) {
  xmlhttp=new XMLHttpRequest();
  }
  xmlhttp.onreadystatechange=function() {
   if (xmlhttp.readyState==4 && xmlhttp.status==200) {
  document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  }
  }
  xmlhttp.open("GET",'/marketplaces?seller='+username['value']);
  xmlhttp.send(); 
  }

最佳答案

此行引起了麻烦:

return render_to_response(request,'soumi1.html',{'marketplaces':marketplaces})

您正在返回marketplaces,但您的 View 也称为marketplaces

<小时/>

猜测一下,我会说您想要返回市场列表。

您可以通过以下方式做到这一点:

marketplaces_list = SellerMarketplaces.objects.filter(seller_id=seller).values_list('mk_id__marketplace', flat=True)

return render_to_response(request,'soumi1.html',{'marketplaces':marketplaces_list})

关于javascript - 下拉列表中字典的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198224/

相关文章:

javascript - Jquery 将按钮值中的字符串添加到输入字段中

python - 为什么Django无法加载Auth模块?

javascript - 页面不在 Wordpress 中加载样式表或 JS 文件

javascript - 为 D3 转换获取 "Error, too late "

python - cuBLAS Dgemm 产品与 python

python - mod_wsgi : Unable to stat Python home and ImportError: No module named 'encodings'

python - 从大文件中检索行的更有效方法

python - Django 1.7 makemigrations 不工作 - 没有名为的列

python - 为什么 Django 返回 Django object is not iterable 错误?

javascript - 在 JavaScript 中,是否可以保存点击触发器并稍后重新应用?