Как отобразить поля ForeignKey в таблице изнутри DetailView в Django?
У меня есть две модели Account и Order и я хотел бы вывести в Django таблицу OrderTable все заказы по счету изнутри DetailView.
Для этого я сначала выбираю заказы, относящиеся к экземпляру Account с помощью self.object, а затем строю таблицу в get_context_data, но проблема в том, что Django выдает ошибку. Какой правильный способ сделать это?
Cannot resolve keyword 'clientid' into field. Choices are: active, email, name [...]
models.py
class Account(models.Model):
name = models.CharField(max_length=100, null=True, blank=False)
active = models.BooleanField(null=True, blank=False, default=False)
email = models.EmailField(max_length=100, blank=True)
class Order(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE, related_name='order', null=True)
clientid = models.CharField(max_length=150, null=True)
dt_update = models.DateTimeField(auto_now=True)
dt_create = models.DateTimeField(default=timezone.now, editable=False)
tables.py
import django_tables2 as tables
from myapp.models import Order
class OrderTable(tables.Table):
class Meta:
model = Order
fields = ('clientid', 'dt_create', 'dt_update')
views.py
class AccountDetailView(SingleTableMixin, generic.DetailView):
model = Account
table_class = OrderTable
context_table_name = 'table'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Select orders of the account and render a table
orders = Order.objects.filter(account=self.object)
context['orders'] = OrderTable(orders)
return context
Шаблон
{% extends "base_generic.html" %}
{% load static %}
{% load django_tables2 %}
{% load render_table from django_tables2 %}
{% block content %}
<h1>{{account.name}}</h1>
<p>Orders for account {{account.name}}</p>
<h4>Orders</h4>
{% render_table orders %}
{% endblock %}