Django ModelForm复选框列表

Django ModelForm复选框列表,django,Django,我是Django的新手,我正在创建一个非常简单的表单, 我想要一个单选复选框(而不是像我现在这样的选择列表) 之后我的表格中会有更多的问题,我想通过一些“无线电选择”对用户来说会更容易 我试着在我的模型中加入一些widget=forms.RadioSelect,但似乎我们在这里做不到 你知道我怎么做吗 这是我的密码: models.py from django.db import models from django import forms class Post(models.Mode

我是Django的新手,我正在创建一个非常简单的表单,

我想要一个单选复选框(而不是像我现在这样的选择列表)

之后我的表格中会有更多的问题,我想通过一些“无线电选择”对用户来说会更容易

我试着在我的模型中加入一些
widget=forms.RadioSelect
,但似乎我们在这里做不到 你知道我怎么做吗

这是我的密码:

models.py

from django.db import models
from django import forms


class Post(models.Model):
    SAMPLE_CHOICES =( 
    (0, "Very satisfied"), 
    (1, "satisfied"), 
    (2, "neutral"), 
    (3, "not very satisfied"), 
    (4, "not satisfied at all"), 
    )    
    q1 = models.IntegerField(choices = SAMPLE_CHOICES, verbose_name=u"cleanliness of the premises")
    q2 = models.IntegerField(choices = SAMPLE_CHOICES, verbose_name=u"quality of services")
        
url.py

from django.urls import path 
from . import views

urlpatterns = [
    path('post/new/', views.post_new, name='post_new'),
]
views.py

from .forms import PostForm
from.models import Post
from django.shortcuts import render


def post_new(request):
    form = PostForm()
    if request.method == 'POST':
        form = PostForm(request.POST)
        print(form.is_valid()) # some debug
        print(form)
        if form.is_valid():
            form.save()
            print(Post.objects.all()[-1].q1) # I print the form i just saved for debug purpuse
    

    return render(request, 'blog/post_edit.html', {'form': form})
forms.py

from django import forms
from .models import Post


class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('q1', 'q2')
base.html

{% load static %}
<html>
    <head>
        <title>Satisfaction form</title>
    </head>
    <body>
        <div class="page-header">
            <h1>Satisfaction form</h1>
        </div>
        <div class="content container">
                    {% block content %}
                    {% endblock %}
        </div>
    </body>
</html>
{%load static%}
满意表
满意表
{%block content%}
{%endblock%}

如果您想在
ModelForm
中更改字段的小部件,可以在
类Meta:

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('q1', 'q2')
        widgets = {
            'q1': forms.RadioSelect(),
        }