Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313

Разобраться с ForeignKey

11.12.2019, 14:18. Показов 4200. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В админке загружаю галерею к портфолио, но не понимаю как ее достать не на главной странице, а на странице которая формируется из slug, а ее шаблон 'service/gallery_category.html'.
Миниатюры
Разобраться с ForeignKey   Разобраться с ForeignKey   Разобраться с ForeignKey  

Разобраться с ForeignKey   Разобраться с ForeignKey  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2019, 14:18
Ответы с готовыми решениями:

Фильтрация ForeignKey поля по другому ForeignKey полю в админке
Всем привет, форумчане и джангисты в частности. Нужна ваша помощь. Свой пример приводить не буду, т.к. слишком много лишнего, но на...

Доступ к ForeignKey
Как получить доступ к menu? class Group(models.Model): category = models.ForeignKey(Category) menu =...

Комментарии не получают ForeignKey
models.py class Cloth(models.Model): cat = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='cloth') ...

37
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.12.2019, 23:26
Студворк — интернет-сервис помощи студентам
Onet1me, ты не понял. Нет смысла фильтровать по слагу, если он уникальный. Нужен гет юзать.
https://docs.djangoproject.com... t-with-get

Но тогда пропадает смысл использования ListView. Непонятно, что ты хочешь сделать вообще.

Но, судя по всему, нужен DetailView тебе для портфолио и slug_url_kwarg https://github.com/django/djan... ail.py#L16 .
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
11.12.2019, 23:33  [ТС]
Python
1
2
3
4
5
6
7
class ServiceModel(ListView):
    model = Portfolio
    context_object_name = 'gallery_category'
    template_name = 'service/gallery_category.html'
 
    def get_queryset(self):
        return Portfolio.objects.filter(slug=self.kwargs.get('slug'))
я так понимаю мне нужно переделать этот класс под DetailView
вытянуть слаг? я правильно понял?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.12.2019, 23:37
Лучший ответ Сообщение было отмечено Onet1me как решение

Решение

Onet1me, правильно

Добавлено через 3 минуты
Как-то так
Python
1
2
3
4
class ServiceModel(DetailView):
    model = Portfolio
    template_name = 'service/gallery_category.html'
    slug_url_kwarg = 'slug'
1
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
11.12.2019, 23:40  [ТС]
Спасибо, с этим я разобрался))) Только прежний вопрос, как картинки в шаблон вытянуть)
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.12.2019, 23:46
Onet1me, я уже показывал

Добавлено через 1 минуту
Для начала посмотри есть ли вообще объект в шаблоне. Вывели просто {{ object }}
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
11.12.2019, 23:50  [ТС]
Да, есть, пишет Название моей галереи
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
11.12.2019, 23:51
Ну все, выводи изображения в цикле, как я показал
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
12.12.2019, 00:10  [ТС]
{% for product in my_product %}
{{ product.title }}
{% for image in product.gallery_set.all %}
<img src="{{ MEDIA_URL }}{{ image.photos.url }}">
{% endfor %}
<hr>
{% endfor %}

На месте {{ product.title }} выводит название Галереи, а вот картинки не выводит все равно, есть еще варианты?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
12.12.2019, 00:15
Onet1me, а откуда у тебя переменная my_product появилась?

Добавлено через 56 секунд
HTML5
1
2
3
{% for image in object.gallery_set.all %}
  <img src="{{ image.photos.url }}">
{% endfor %}
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
12.12.2019, 00:20  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{% load static %}
<!DOCTYPE html>
<html lang="en" >
 
<head>
  <meta charset="UTF-8">
  <title>Family</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.8.2/css/lightbox.css">
  <link rel="shortcut icon" href="https://www.rudebox.org.ua/favicon.ico"/>
  <link rel='stylesheet prefetch' href='https://www.rudebox.org.ua/demo/lessons/styles/style.css'>
  <link rel="stylesheet" href="{% static 'galery_child/css/style.css' %}">
</head>
<body background={% static 'galery_child/images/bg.jpg' %}>
 
<div class="container">
  <div class="row">
 
        <div class="col-lg-12"><h1 class="page-header"><div align=center>Family</div></h1></div>
 
{{ object }}            
  
  {% for image in object.gallery_set.all %}
    <div class="col-lg-3 col-md-4 col-xs-6 thumb"><a class="thumbnail" href={{ MEDIA_URL }}{{ image.photos.url }} data-lightbox="imgGLR" ><img class="img-responsive" border="0" height="300" src="{{ MEDIA_URL }}{{ image.photos.url }}" width="400" /></a></div>
  {% endfor %}
 
 
        
    </div>  
</div>
 
<script src="{% static 'galery_child/js/lightbox-plus-jquery.js' %}"></script>
  
</body>
 
</html>
Добавлено через 59 секунд
Вот так получается, картинок нет(
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
12.12.2019, 00:23
Лучший ответ Сообщение было отмечено Onet1me как решение

Решение

Onet1me, без MEDIA_URL

Добавлено через 2 минуты
можно через related_name. не заметил сразу
HTML5
1
2
3
{% for image in object.photos.all %}
  <img src="{{ image.photos.url }}">
{% endfor %}
1
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
12.12.2019, 00:23  [ТС]
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
Onet1me, без MEDIA_URL
Все равно ничего(
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
12.12.2019, 00:28
DEBUG = True?
Настройки покажи.
Уверен, что у этого портфолио есть изображения?

Добавлено через 46 секунд
и покажи отрендеренный хтмл
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
12.12.2019, 00:31  [ТС]
DEBUG = True
Миниатюры
Разобраться с ForeignKey  
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
12.12.2019, 00:32  [ТС]
и покажи отрендеренный хтмл - это как он отображается?, или код?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
12.12.2019, 00:34
Onet1me, это исходный код страницы.
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
12.12.2019, 00:37  [ТС]
Извини меня пожалуйста, я удалил куки и заново перегрузил и все заработало. Большое тебе спасибо за твое терпение и отзывчивость. Сейчас выложу, все файлы, может кому-нибудь пригодиться. Еще раз спасибо
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
12.12.2019, 11:15  [ТС]
В общем запрос был таков: у нас динамически создавалась страница исходя из названия галереи и представляла из себя галерею с картинками. Сложность состояла в том чтобы вытянуть эти картинки. Вопрос решился так

models.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from django.db import models
from django.urls import reverse
 
 
class Portfolio(models.Model):
    title = models.CharField('Название галереи', max_length=100)
    sub_title = models.CharField('Краткое описание', max_length=150)
    images = models.ImageField('Заставка галереи', upload_to='images/%Y/%m/%d')
    slug = models.SlugField('URL', max_length=100, default = '', unique=True)
    description = models.CharField('Description', max_length = 120, blank=True, null=True)
    keywords = models.CharField('Keywords', max_length = 120, blank=True, null=True)
 
    def __str__(self):
        return self.title
    
    @property
    def images_url(self):
        if self.images and hasattr(self.images, 'url'):
            return self.images.url
    
    def get_absolute_url(self):
        return reverse("gallery_category", kwargs={"slug": self.slug})
 
class Gallery(models.Model):
    photos = models.ImageField(upload_to='gallery')
    product = models.ForeignKey(Portfolio, on_delete=models.CASCADE, related_name='photos')
admin.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
from django.contrib import admin
from gallery.models import Portfolio, Gallery
 
 
class GalleryInline(admin.TabularInline):
    fk_name = 'product'
    model = Gallery
 
 
@admin.register(Portfolio)
class PortfoliotAdmin(admin.ModelAdmin):
    inlines = [GalleryInline,]
views.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from django.shortcuts import render
from .models import Portfolio 
from django.views.generic import DetailView
 
def index(request):
    '''Главная страница'''
    context = {}
    services = Portfolio.objects.all()
    context['services'] = services
    template = 'base.html'
    return render(request, template, context)
 
 
class ServiceModel(DetailView):
    model = Portfolio
    template_name = 'service/gallery_category.html'
    slug_url_kwarg = 'slug'
urls.py
Python
1
2
3
4
5
6
7
8
9
10
11
from django.urls import path
from gallery import views
from .views import ServiceModel
 
 
 
urlpatterns = [
    path('', views.index),
    path('<slug:slug>/', ServiceModel.as_view(), name = 'gallery_category'),
    
]
html
HTML5
1
2
3
{% for image in object.photos.all %}
  <img src="{{ image.photos.url }}">
{% endfor %}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2019, 11:15

Поле формы, соответствующее ForeignKey
Оно содержит объект другой модели. При этом на экране этому полю соответствует список select,и там надо выбирать нужный объект. Опции...

Как в ForeignKey сделать дефолтный pk?
Хочу сделать чтобы поле book автоматически заполнялось pk книги, на которой пишется комментарий. Возможно ли это как-то сделать? Вот мои...

SQLite and Java Delete ForeignKey
Привет! Каким образом настроить БД, чтобы нельзя было удалять строки с данными, связанными внешними ключами? del Прикрепляйте...

Как добавить ключ FOREIGNKEY в таблицу?
Установила денвер-3,на английском.В MySql создала таблицу.Не могу никакими судьбами,туплю,добавить ключ FOREIGKEY.кТО СКАЖЕТ,как его...

Django. Вывод данных ForeignKey в шаблон
Есть 2 модели: class shops_cafe(models.Model): cafe_name = models.CharField(max_length=255, unique=True,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru