Показать запись из базы данных в шаблон - PullRequest
0 голосов
/ 23 апреля 2020

Привет, я создаю проект, в котором есть форма, которую отправляет пользователь для входа, поэтому пользователь может отправить форму несколько раз, когда я использовал ForeignKey. Теперь я изо всех сил пытаюсь отобразить все записи, связанные с пользователем. например: у пользователя 'ab c' есть форма заполнения, и он приходит снова и заполняет форму, поэтому я хочу показать в своем шаблоне обе детали формы пользователя ab c, я пропускаю что-то новое для django

views.py

def PostTest(request):
    if request.method == 'POST':
        test = UserTest()
        test.user = request.user
        test.name = request.POST['name']
        test.email = request.POST['email']
        test.location = request.POST['location']
        test.time = request.POST['time']
        test.save()
        return render(request, 'posts/test.html')
test.html
{{ user.usertest.location }}
models.py
class UserTest(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=255)
    email = models.EmailField()
    location = models.CharField(max_length=255)
    time = models.IntegerField()
    test_submitted = models.BooleanField()

, поэтому я хочу получить местоположение, сохраненное в моем шаблоне, поскольку пользователь заполняет форму несколько раз, поэтому я хочу, чтобы все местоположение этого пользователя в моем шаблоне django, что-то зацикливалось может работать, но как новичок ie не знает, как его использовать.

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Если существует отношение ForeignKey между UserTest и User, например:

class UserTest(models.Model)
    user = models.ForeignKey(User)

Тогда вы можете просто получить данные о местоположении следующим образом:

{% for ut in user.usertest_set.all %}
    {{ ut.location }}
{% endfor %}

Я использую reverse relation между User и UserTest моделью для выполнения этого запроса.

0 голосов
/ 23 апреля 2020

Вам нужно перебрать все формы, сохраненные пользователем, поэтому либо отправьте их из файла views.py в контексте при рендеринге, либо получите их в самом шаблоне

def PostTest(request):

if request.method == 'POST':
        test = UserTest()
        test.user = request.user
        test.name = request.POST['name']
        test.email = request.POST['email']
        test.location = request.POST['location']
        test.time = request.POST['time']
        test.save()
        submitted_form = UserTest.objects.filter(user=request.user)
        return render(request, context={'forms': submitted_form}, 'posts/test.html')

в html файл

{% for form in forms %}
{{ form.location }}
{% endfor %}

Go через do c для Django для лучшего понимания

...