В Django я хотел бы создать словарь из значений модели, который также включает значения внешнего ключа.
Так, например, у меня есть 2 модели:
- модели. py -
class Item(models.Model):
item_name = models.CharField(max_length=255)
item_description = models.CharField(max_length=255)
class Inventory(models.Model):
inventory_name = models.CharField(max_length=255)
inventory_date = models.DateTimeField(default=timezone.now)
inventory_item = models.ForeignKey(Item, on_delete=models.DO_NOTHING)
(не лучшие примеры имен переменных, поскольку это может быть отношение многих ко многим, но вы понимаете, в чем дело)
В моих URL мне нужен путь, которыйпоказывает первичный ключ, потому что у меня будут некоторые другие функции, основанные на их pks из URL.
- urls.py -
urlpatterns = [
path('details/<int:pk>/', views.GenerateDetails, name='details'),
]
Теперь вот у меня проблемы.
Я пытаюсь создать словарь из модели Inventory, который также будет иметь значения ForeignKey из Item.
- views.py -
class GenerateDetails(View):
def get(self, request, *args, **kwargs):
inventory_data = Inventory.objects.get(pk=self.kwargs.get('pk'))
# Create dictionary from selected contract_data
inventory_data_dict = model_to_dict(inventory_data)
...
return response
Из этого решения единственным значением ForeingKey, которое сохраняет словарь, является Item__id и все.
Я бы хотел, чтобы в словаре были сохранены все данные для инвентаризации, а также Item__name и Item__description.