Я хочу удалить кортежи и ' ' из списка. Я работаю над проектом django

taluka=[('sirur',),('jath',),('mauli',)]    
queryset = data.objects.values_list("taluka").distinct()
queryset = [item[0] for item in queryset]
print(queryset)  // sirur,jath,mauli,etc
Taluka=forms.ModelChoiceField(queryset=data.objects.values_list("taluka").distinct(),)
print(Taluka) // ('sirur',),('jath',),('mauli',)

Я хочу, чтобы названия талуков печатались как sirur, jath, mauli

Вы можете использовать осмысление списка

taluka = [i[0] for i in taluka]

Решение 1: Вы можете использовать функцию join для преобразования кортежей внутри списка в строки, а затем преобразовать список строк в строку, разделенную запятыми, снова используя функцию join.

taluka=[('sirur',),('jath',),('mauli',)]   
taluka = ",".join(["".join(t) for t in taluka])
print(taluka)

Решение 2: Дополняя ответ из LOCKhart, вы можете использовать понимание списка для преобразования данных в список строк и использовать функцию join для преобразования их в строку, разделенную запятыми.

taluka=[('sirur',),('jath',),('mauli',)]   
taluka = ",".join([i[0] for i in taluka])
print(taluka)

Используйте .values_list("taluka", flat=True), чтобы получить плоский список одного поля без бесполезных 1 кортежей. Вы должны получить ['sirur', 'jath', 'mauli']

В противном случае, как следует из ответа LOCKhart, лучше всего использовать списковые вычисления.

queryset = list(data.objects.values_list("taluka", flat=True).distinct())

сделайте это, и все готово

Вернуться на верх