如何在 django 中创建单选按钮,哪些字段在表单和模型中使用

Ash*_*Ash 6 python forms django django-models

我是 Django 和 Python 的新手。我想在我的表单中添加一个单选按钮,但它不起作用。

形式.py:

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django.forms.widgets import RadioSelect
from choicebtn.models import myChoice


class myChoiceForm(UserCreationForm):
    name=forms.CharField(max_length=55)
    TYPE_SELECT = (('0', 'Female'),('1', 'male'),)
    gender=forms.ChoiceField(widgets.RadioSelect(choices=TYPE_SELECT))

    class Meta:
           model = myChoice
           fields = ['name','gender']   
Run Code Online (Sandbox Code Playgroud)

模型.py:

from django.db import models
from django.forms.widgets import RadioSelect
from django.urls import reverse


class myChoice(models.Model):
    name=models.CharField(max_length=55)
    TYPE_SELECT = (('0', 'Female'),('1', 'male'),)
    gender=models.CharField(max_length=11,choices=TYPE_SELECT)
    
Run Code Online (Sandbox Code Playgroud)

这只显示dropdownlisttextbox。它不显示单选按钮。请帮我。

Tha*_*es 10

在 models.py 中:

class myChoice(models.Model):
    name = models.CharField(max_length=55)
    TYPE_SELECT = (
        ('0', 'Female'),
        ('1', 'male'),
    )
    gender = models.CharField(max_length=11,choices=TYPE_SELECT)
Run Code Online (Sandbox Code Playgroud)

在forms.py中:

class myChoiceForm(ModelForm):

    class Meta:
           model = myChoice
           fields = ['__all__']
           widgets = {
               'gender': forms.RadioSelect()
           }   
Run Code Online (Sandbox Code Playgroud)


小智 -1

正确的使用方法。

1)模型.py

from django import forms

class ExampleModel(models.Model):
    field1 = forms.ChoiceField(widget=forms.RadioSelect)
Run Code Online (Sandbox Code Playgroud)

2) 表格.py

class ExampleForm(forms.Form):
    field1 = forms.ChoiceField(required=True, widget=forms.RadioSelect(
    attrs={'class': 'Radio'}), choices=(('apple','Apple'),('mango','Mango'),))
Run Code Online (Sandbox Code Playgroud)