Как перебрать объект набора запросов, если объект содержит более одного символа и пробелов? - PullRequest
0 голосов
/ 25 апреля 2019

Я попытался отсортировать строку, которая была введена через форму, путем преобразования в список, но я получаю сообщение об ошибке, что объект не повторяется.Как мне отсортировать его без встроенного метода?

models.py

class LinkedList(models.Model):
    post = models.TextField(max_length=256)

    def __str__(self):
        l1=list(self.post.split(" "))
        return str(l1)

views.py

def listform(request):
    form = LLForm(request.POST)
    if request.method == 'POST':
        if form.is_valid():
            form.save(commit=True)

        list1 = LinkedList.objects.all().last()
        listll=list(list1)
        for i in range(1, len(listll)):
             key = listll[i]
             j = i-1
             while j >= 0 and key < listll[j] :
                 listll[j + 1] = listll[j]
                 j -= 1
             listll[j + 1] = key

        cont={'ll': listll}
        return render(request,'basicapp/linked.html',context=cont)

    else:
        form = LLForm()
        return render(request,'basicapp/listform.html',{'form':form})

1 Ответ

0 голосов
/ 25 апреля 2019

Ваш набор запросов не кажется правильным.

Вам необходимо изменить ваш набор запросов следующим образом:

from django.db.models.functions import Length
qs = LinkedList.objects.annotate(post_len=Length('post')).filter(post_len__gte=2)

Это queryset даст вам то, что вы хотите. Вы можете заказать его, однако вы можете:

my_list = list(qs)
for l in my_list:
    # Do Comparison Here
    # l will be LinkedList instance.
...