Django Получить данные из другой модели Foreignkey

Рейтинг: 0Ответов: 1Опубликовано: 30.01.2023

Помогите понять, как подцепить данные rgb_name из модели rgb, сейчас получаю только rgb_numb

models.py

class Rgb(models.Model):
    rgb_numb = models.CharField('Номер', max_length=10)
    rgb_name = models.CharField('Наименование', max_length=500)
    rgb_mod = models.CharField('Наименование', max_length=500)

    def __str__(self):
        return self.rgb_numb
  
class Reestr_db(models.Model):
    id_numb = models.CharField('Номер протокола', max_length=10, blank=True)
    rgb_numb = models.ForeignKey(rgb, on_delete=models.PROTECT, related_name="result_rgb_numb", verbose_name="Номер")
    rgb_name = models.ForeignKey(rgb, on_delete=models.PROTECT, related_name="result_rgb_name", verbose_name="Наименование")

views.py

def reestr(request):
    bazar = rgb.objects.all()
    baza = reestr_db.objects.order_by('id_numb')
    datar = {
        'baza': baza,
        'bazar': bazar
    }
    return render(request, 'main/reestr.html', datar)

reestr.html

  {% for el in baza %}
        <tr>
            <td>{{ el.result_rgb_numb.rgb_mod }}</td>
            <td>{{ el.result_rgb_name.rgb_name }}</td>

Ответы

▲ 1Принят

Мне кажется, вы планировали сделать нечто подобное:

class RGB(models.Model):
    rgb_numb = models.CharField('Номер', max_length=10)
    rgb_name = models.CharField('Наименование', max_length=500)
    rgb_mod = models.CharField('Наименование', max_length=500)

    def __str__(self):
        return self.rgb_numb
  
class ReestrDB(models.Model):
    id_numb = models.CharField('Номер протокола', max_length=10, blank=True)
    rgb = models.ForeignKey(
        rgb, on_delete=models.PROTECT,
        related_name="result_rgb",
        verbose_name="Номер")

И затем в шаблоне:

  {% for el in baza %}
        <tr>
            <td>{{ el.rgb.rgb_mod }}</td>
            <td>{{ el.rgb.rgb_name }}</td>