Obtuve un modelo "PC_Configuration" con un montón de listas desplegables:
class PC_Configuration(models.Model): PROCESSOR_CHOICES = ( ('None', 'Wähle deinen Prozessor'), ('1', 'Prozessor1'), ('2', 'Prozessor2'), ('3', 'Prozessor3'), ) GRAPHICSCARD_CHOICES = ( ('None', 'Wähle deine Grafikkarte'), ('1', 'Grafikkarte1'), ('2', 'Grafikkarte2'), ('3', 'Grafikkarte3'), ) OS_CHOICES = ( ('None', 'Wähle dein Betriebssystem'), ('1', 'Betriebssystem1'), ('2', 'Betriebssystem2'), ('3', 'Betriebssystem3'), ) RAM_CHOICES = ( ('None', 'Wähle deinen Arbeitsspeicher'), ('1', 'RAM1'), ('2', 'RAM2'), ('3', 'RAM3'), ) HARDDRIVE_CHOICES = ( ('None', 'Wähle deine Restspeicher-Größe'), ('1', 'Festplatte1'), ('2', 'Festplatte2'), ('3', 'Festplatte3'), ) processor = models.CharField(max_length=25, choices=PROCESSOR_CHOICES, default='None') graphicscard = models.CharField(max_length=25, choices=GRAPHICSCARD_CHOICES, default='None') ram = models.CharField(max_length=25, choices=RAM_CHOICES, default='None') os = models.CharField(max_length=25, choices=OS_CHOICES, default='None') harddrive = models.CharField(max_length=25, choices=HARDDRIVE_CHOICES, default='None')Acabo de probar las opciones de esos campos desplegables con algunas entradas codificadas, pero en realidad quiero obtener todos los datos para las opciones de, por ejemplo, los "procesadores" - Campo desplegable de la tabla del nombre de campo de los procesadores modelo:
class Processors(models.Model): name = models.CharField(max_length=50)Entonces mi pregunta es: ¿Es posible obtener todos los valores dentro del nombre -Campos del modelo de procesadores , tal vez escribirlos en una matriz al igual que la entrada codificada actual para poder mostrarlos dentro del campo desplegable de PC_Configuration ¿Modelo?
Edición breve: he intentado usar algo como:
list(PC_Configuration.objects.all().values_list('name', flat=True))Pero parece que "PC_Configuration.objects" no existe...
Puede tener una ForeignKey para esa tabla en su modelo, digamos:
processor = models.ForeignKey(Processors, models.DO_NOTHING)Entonces puede crear un formulario modelo para PC_Configuration
class MyForm(forms.ModelForm): class Meta: model = PC_Configuration def __init__(self, *args, **kwargs): super(MyForm, self).__init__(*args, **kwargs) self.fields['processors'].quereset = Processors.objects.all() self.fields['processors'].label_from_instance = lambda obj: "%s" % obj.name