Django Получить данные из другой модели Foreignkey
Помогите понять, как подцепить данные 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>
Ответы (2 шт):
Автор решения: George
→ Ссылка
related_name будет работает из первичной таблице! Вы ошиблись в контексте переменных, нужно использовать bazar, а не baza. У baza нет result_rgb_numb и result_rgb_name
{% for el in bazar %}
<tr>
<td>{{ el.result_rgb_numb.rgb_mod }}</td>
<td>{{ el.result_rgb_name.rgb_name }}</td>
Автор решения: Dmitry Nekrasov
→ Ссылка
Мне кажется, вы планировали сделать нечто подобное:
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>