如何在单选按钮旁边添加文本框

时间:2016-07-20 06:37:37

标签: django django-models django-forms

如何使用django表单在单选按钮旁边添加文本框?我已经单独设置了单选按钮。

我还想存储文本框的值而不是"其他"。

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'
     )

预期产出:

  

问题:

     
      
  • 选择1
  •   
  • 选择2
  •   
  • 其他[文本框]
  •   
     

帮助文字

3 个答案:

答案 0 :(得分:0)

如果文本框不在您的Django表单中,因为它不是您表单中的输入之一,那么您只需将该文本放入html中的 div 并使用css显示内联或内嵌块的属性,您可以在“其他”单选按钮旁边显示该div

看到这个 - > http://www.w3schools.com/cssref/pr_class_display.asp

答案 1 :(得分:0)

即使您可以指定小部件,我也认为它不会起作用,因为您无法将其存储在模型中 - 您的question字段仅限于您在模型中设置的选项。

您可能想重新考虑您的设计,如果无线电选择是其他选项,您可以在单选按钮下面单独输入(可能是?)。

这就是在发布时必须处理代码的方式,因为所有输入都需要为其分配名称。

答案 2 :(得分:0)

在forms.py

中为django表单添加另一个输入字段

现在在您的javascript文件中,在页面加载时隐藏该输入。

$('#Other').click(function(){
    if ($(this).is(':checked')){
        $("#user-input-textbox").show();
    }
    else{
         $("#user-input-textbox").html('');
         $("#user-input-textbox").hide();
    }
});

当'其他'选中单选按钮并在取消选中时将其隐藏,并在隐藏之前清除现有值:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not open file "C:\Mar-2015.csv" for reading: No such file or directory