Получить все поля при создании набора внутренних запросов в django - PullRequest
0 голосов
/ 13 марта 2019

я пытаюсь получить все поля при создании набора запросов внутреннего соединения, подобного этому:

querysetd = MenuResponseModel.objects.select_related('option').filter(MenuID=menuCreateId)

Но он продолжает отвечать мне только полями основной таблицы.

{'id': 2, 'option_id': 7, 'userName': 'miguel', 'MenuID_id': UUID ('057e4185-c79d-40ff-b90d-0bee254754c8'), 'comments': 'sin cebolla por favour', 'date': datetime.date (2019, 3, 13)}

Это мои модели

class MenuResponseModel(models.Model):
    option = models.ForeignKey(Menu, blank=False)
    userName = models.CharField(max_length=50, blank=True )
    MenuID= models.ForeignKey(MenuCreateModel, blank=False, on_delete=models.CASCADE)
    comments = models.CharField(max_length=200)         
    date = models.DateField(auto_now_add=True, blank=True)

class Menu(models.Model):
    option = models.IntegerField(unique=True)
    description = models.CharField(max_length=100) 
    date = models.DateField(auto_now_add=True, blank=True)
    MenuID= models.ForeignKey(MenuCreateModel, default=uuid.uuid4, on_delete=models.CASCADE)

Спасибо за помощь -

1 Ответ

3 голосов
/ 13 марта 2019

Значения из вашего поля ForeignKey также существуют в наборе запросов.Если вы хотите увидеть их, вы можете использовать значения метод набора запросов:

querysetd.values('option__some_field', 'option__some_field2')  # and so on

или напрямую получить доступ к значению, как это:

for i in querysetd:
   i.option.some_field  # will not hit database as you have used select related
...