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