Не могу получить доступ к ForeignKey в шаблоне - PullRequest
1 голос
/ 02 ноября 2019

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

Я хотел бы показать URL-адрес ImageField, сохраненного в БД

Models.py

class Usertasks(models.Model):
    TaskID = models.CharField(max_length=55)
    user = models.ForeignKey(User, unique=False, on_delete=models.CASCADE)
    TaskStatus = models.CharField(max_length=15, default="missing")

class TaskImages(models.Model):
    UserTasks = models.ForeignKey(Usertasks, related_name='images', on_delete=models.CASCADE)
    image = models.ImageField()

views.py

def task_info(request, taskid):
    task = Usertasks.objects.get(TaskID=taskid)
    taskhtml = Usertasks.objects.filter(TaskID=taskid)
    files = os.listdir(task.OutputPath)
    fullpath = task.OutputPath
    print(files)
    for img in files:
        imagepath = fullpath + "/" + img
        task_image = TaskImages()
        task_image.UserTasks = task
        task_image.image = imagepath
        task_image.save()
    return render(request, 'dashboard/task.html', {'query':taskhtml})

html

{% for item in query.image_set.all %}

<img src="{{ item.url }}">

{% endfor %}

1 Ответ

2 голосов
/ 02 ноября 2019

У вас есть related_name kwarg для UserTasks в TaskImages. Поэтому вы используете это значение вместо _set

https://docs.djangoproject.com/en/2.2/ref/models/fields/#django.db.models.ForeignKey.related_name

https://docs.djangoproject.com/en/2.2/topics/db/queries/#following-relationships-backward

Вы можете переопределить имя FOO_set, установив параметр related_name вопределение ForeignKey.

Для решения вашей проблемы вам нужно будет использовать query.images вместо image_set

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...