Сохранение списков в модели в Django - PullRequest
1 голос
/ 21 июня 2020

Я создаю трекер, где пользователи каждый день сохраняют свой ответ на один и тот же вопрос. Есть ли способ отслеживать отдельные ответы в виде списка через models.py?

Я не вижу поля модели для списков, поэтому я сохраняю список ответов через представления .py на данный момент.

mylist = []
global length

@login_required
def add(request):
respond = Response.objects.all()

if request.method == 'POST':
    selected_option = (request.POST['rating'])
    length = len(mylist)
    if selected_option == 'option1':
        mylist.append(1)
        print(respond.score)
    elif selected_option == 'option2':
        mylist.append(2)
        print(respond.score)
    elif selected_option == 'option3':
        mylist.append(3)
        print(respond.score)
    elif selected_option == 'option4':
        mylist.append(4)
        print(respond.score)
    elif selected_option == 'option5':
        mylist.append(5)
        print(respond.score)
    else:
        return HttpResponse(400, 'Invalid form')

    for votes in respond:
        votes.save()

    return redirect(add)

context = {
    'respond' : respond,
    'mylist' : mylist
}
return render(request, 'rating/add.html', context)

def graph(request):
x_data = list(range(0,len(mylist)))
y_data = list(mylist)
return render(request, "rating/home.html", context={'plot_div': plot_div, 'mylist' : mylist})

Это завершает мою потребность сохранять ответы в список, чтобы я мог отправлять их в сюжет. Проблема в том, что он не сохраняется как часть модели и поэтому не связан напрямую с каким-либо конкретным c пользователем (все результаты пользователей сгруппированы вместе).

Я использую это для своих models прямо сейчас, но не знаете, как связать и сохранить в нем результаты опроса:

class Response(models.Model):
responder = models.ForeignKey(User, on_delete=models.CASCADE)
score = models.IntegerField(default=0)

def __str__(self):
    return self.score

Как мне настроить свою модель, чтобы иметь возможность сохранять список ответов (числовые значения), которые могут быть нанесен?

1 Ответ

0 голосов
/ 21 июня 2020

разве вы не используете поле ManyToMany для хранения ответов пользователя на каждый «вопрос»?

...