когда я нажимаю на изображения, тогда показываю 3 изображения на другой html-странице, но эти 3 изображения различны для каждого кликаемого изображения - PullRequest
1 голос
/ 21 октября 2019

Я хочу получить доступ к связанному объекту класса через класс значения, потому что поле img класса значения связано с 3 изображениями связанного класса по внешнему ключу

это мой models.py

class value(models.Model):
    img = models.ImageField(upload_to='images/')
    price = models.IntegerField()

class related(models.Model):
    u_id = models.ForeignKey(value,on_delete=models.CASCADE)
    image=models.ImageField(upload_to='images/')
    loc = models.CharField(max_length=20)


this my views.py

def home(request):
    rels = value.objects 
    return  render(request,'rel/home.html',{'rels':rels})

def detail(request,id):
    det = get_object_or_404(value,pk=id)
    det1 = det.id
    u_id = related.objects.get()
    return render(request,'rel/detail.html',{'det':det,'u_id':u_id})

this my html page 
{% for u in u_id.all %}
        <div class="container">
                <img src="{{ u_id.image.url }}" alt="">
        </div>
        {% endfor %}

это моя ошибка: - get () вернул более одного связанного - вернул 3! (в окне браузера)

Я хочу, чтобы при нажатии на изображение, которое доступно на моем home.html, отображалось 3 изображения на другой html-странице, но условие состоит в том, что эти 3 изображения различны для всех доступных изображений. на home.html

1 Ответ

0 голосов
/ 21 октября 2019

get () возвращает один объект, поэтому вам нужно использовать filter () здесь, вот так:

def detail(request,id):
    det = get_object_or_404(value,pk=id)
    u_id = related.objects.filter(u_id=det)
    return render(request,'rel/detail.html',{'det':det,'u_id':u_id})

А в шаблоне вы этого не сделаетенужно использовать u_id.all просто for u in u_id будет работать

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