返回foreignkey关系的数据的Queryset

2024-04-25 23:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图进行一个查询,返回foreignkey关系的数据,但没有成功。我想把无线电模型的web字段的数据带到对模型程序asradiales的查询中。我只设法把模型程序中的数据作为基础。在

模型

class Radio(models.Model):
    usuario = models.ManyToManyField(settings.AUTH_USER_MODEL)
    radio = models.CharField('Nombre de la Emisora', max_length=50)
    web = models.URLField()

    class Meta:
        ordering = ['radio']
        verbose_name_plural = 'radios'

    def __str__(self):
        return self.radio

class ProgramasRadiales(models.Model):

    rango = (
            ('lun', 'Lunes'),
            ('mar', 'Martes'),
            ('mie', 'Miercoles'),
            ('jue', 'Jueves'),
            ('vie', 'Viernes'),
            ('sab', 'Sábado'),
            ('dom', 'Domingo')
        )

    nombre = models.CharField('Nombre del programa de radio', max_length=60)
    dias = MultiSelectField('Selecciona los días', choices = rango, max_length=40)
    inicio = models.TimeField(blank = False, null = True)
    duracion = models.PositiveSmallIntegerField('Duración del programa(minutos)', default=False)
    radios = models.ForeignKey(Radio)

    class Meta:
        ordering = ['nombre']
        verbose_name_plural = 'programas radiales'

    def __str__(self):
        return self.nombre

奎里斯

^{2}$

结果

<QuerySet [{'nombre': 'Matinal', 'inicio': datetime.time(10, 0), 'radios_id': 2, 'dias': ['mie'], 'duracion': 20, 'id': 3}, {'nombre': 'Nocturnos', 'inicio': datetime.time(18, 0), 'radios_id': 1, 'dias': ['jue', 'vie'], 'duracion': 20, 'id': 4}, {'nombre': 'Siempre Informados', 'inicio': datetime.time(6, 0), 'radios_id': 1, 'dias': ['lun', 'mie', 'vie'], 'duracion': 15, 'id': 2}, {'nombre': 'Tus noticias', 'inicio': datetime.time(7, 0), 'radios_id': 2, 'dias': ['lun', 'mar', 'mie', 'jue', 'vie'], 'duracion': 20, 'id': 1}]>

Tags: 数据selfiddatetimetimemodelsclassradio
2条回答

您需要使用''uuu'(双下划线运算符)来获取外键的数据。在

ProgramasRadiales.objects.all().values(
                               'nombre', 'inicio', 'radios__radio', 'radios__web')

您将需要在查询中使用select_related

https://docs.djangoproject.com/en/1.11/ref/models/querysets/#select-related

datos = ProgramasRadiales.objects.select_related("radios").all()

相关问题 更多 >