首页 > 解决方案 > 单选按钮不会出现在我的默认 DjangoModelform 上。我找不到问题?

问题描述

在此处输入图像描述这是我希望我的性别字段显示为单选按钮的模型。

class Passenger(models.Model):
    # book_id = models.OneToOneField(Booking,
    #       on_delete = models.CASCADE, primary_key = True)
    First_name = models.CharField(max_length=200, unique=True)
    Last_name = models.CharField(max_length=200, unique=True)
    Nationality = models.CharField(max_length=200, unique=True)
    Passport_No = models.CharField(max_length=200, unique=True)
    Passport_Exp_Date = models.DateField(blank=False)
    Contact_Number = models.CharField(max_length=200, unique=True)
    Email = models.EmailField(max_length=200, unique=True)
    Customer_id = models.CharField(max_length=50)
    Gender = models.CharField(max_length=50)

这是我的模板。

    <form  method="POST">
                                                                                    
       {% csrf_token %}
                                                                                    
      {{ form|crispy }}                                                                                                                                                             
 <button type="submit" class="btn btn-success" formaction="{% url 'addcustomer' %}">Submit</button>
                                                                                    <button class="btn btn-primary" formaction="{% url 'customerlist' %}">Cancel</button>
                                                                            </form>

这是我的乘客表格。

class PassengerForm(forms.ModelForm):
    Passport_Exp_Date = forms.DateField(widget=forms.widgets.DateInput(attrs={'type': 'date'}))

    CHOICES = [('M', 'Male'), ('F', 'Female'), ('O', 'Others')]
    Gender = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect)

    class Meta:
        model= Passenger
        fields = '__all__'

标签: pythondjangoobjecturlview

解决方案


您必须在 html 模板中将其修改为

<input type="radio" value="your-form-instance.Gender" />

推荐阅读