下拉django中字典的值

Values of a dict in a dropdown django

我的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) 

我的观点中有如下代码

def marketplaces(request):  

seller = request.GET.get('seller', '')
allmarketplaces = SellerMarketplaces.objects.filter(seller_id = seller).values('mk_id__marketplace')
print allmarketplaces

通过它我得到以下输出:

[{'mk_id__marketplace': u'Flipkart'}, {'mk_id__marketplace': u'Snapdeal'}]

我想在下拉菜单中显示值,即 Flipkart 和 Snapdeal,但在我写

时无法访问这些值
print allmarketplaces.values()

它给了我

 [{'username': u'mail@fields.com', u'seller_id_id': 1L, u'mk_id_id': 1L, 'id': 1L}, {'username': u'mail@fields.com', u'seller_id_id': 1L, u'mk_id_id': 2L, 'id': 2L}]

我如何访问这些值(Flipkart 和 Snapdeal)?

试试这个,

for i in range(len(allmarketplaces)):
   print allmarketplaces[i]['mk_id__marketplace']

您正在寻找 values_list:

>>> allmarketplaces = SellerMarketplaces.objects.filter(seller_id=seller).values_list('mk_id__marketplace', flat=True)
>>> print allmarketplaces
['Flipkart', 'Snapdeal']