Wie füge ich ein Textfeld neben einem Optionsfeld mithilfe von Django-Formularen hinzu? Ich habe bereits das Setup für die Radioknöpfe alleine.So fügen Sie ein Textfeld neben einem Optionsfeld hinzu
Ich möchte auch den Wert der Textbox anstelle von "Andere" speichern.
forms.py
from django import forms
from .models import MyModel
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
fields = (
'question',
)
widgets = {
'question': forms.RadioSelect,
}
models.py
class MyModel(TimeStampedModel):
Choice1 = "Choice 1"
Choice2 = "Choice 2"
Other = "Other"
MyModel_Choices = (
(Choice1 = 'Choice 1'),
(Choice2 = 'Choice 2'),
(Other = 'Other'),
)
question = models.CharField(
_('Question'),
max_length=100,
choices=MyModel_Choices,
help_text='Help Text'
)
Erwartete Ausgabe:
Frage:
- Choice1
- Choice2
- Andere [Textbox]
Hilfetext
Dazu müsste ich ein weiteres Eingabefeld hinzufügen? deshalb eine andere Spalte in meinen Modellen? – Markkkkk
Nein, das musst du nicht. Technisch gibt es zwei Möglichkeiten, dies zu tun. Zuerst ist die Verwendung von forms.Form anstelle von forms.ModelForm, wo Sie den vollen Luxus haben, so viele Eingabefelder und Optionsfelder hinzuzufügen, wie Sie unabhängig vom Modell werden. Zweite Methode ist die Verwendung Ihrer Forms.ModelForm und einfach ein zusätzliches Feld in diese wie folgt einfügen -> http://stackoverflow.com/questions/12097825/specifying-widget-for-model-form-extra-field-django –
Außerdem können Sie die neu hinzugefügte Eingabe ausblenden, indem Sie so etwas tun -> http://stackoverflow.com/questions/15795869/django-modelform-to-have-a-hidden-input –