Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django中显示RadioSelect小部件_Django_Django Models_Django Views_Django Widget - Fatal编程技术网

如何在django中显示RadioSelect小部件

如何在django中显示RadioSelect小部件,django,django-models,django-views,django-widget,Django,Django Models,Django Views,Django Widget,我有一个模型、表单和视图,似乎无法实际显示RadioSelect小部件。它没有显示任何东西,我认为除了风景之外一切都很好,但是我不确定。 我基本上希望有人从两个单选按钮中进行选择和选择,提交,然后能够注册为两个选项之一,但就像我说的,我甚至不能让按钮显示 views.py def registration(request): reg = Registration.objects.all() return render(request, 'HTML/Registration.htm

我有一个模型、表单和视图,似乎无法实际显示RadioSelect小部件。它没有显示任何东西,我认为除了风景之外一切都很好,但是我不确定。 我基本上希望有人从两个单选按钮中进行选择和选择,提交,然后能够注册为两个选项之一,但就像我说的,我甚至不能让按钮显示

views.py

def registration(request):
    reg = Registration.objects.all()
    return render(request, 'HTML/Registration.html', {"reg":reg})
models.py

class Registration(models.Model):
    OPTIONS = (
            ('COUNS','Counsellor'),
            ('CLIENT','Client'),
            )
    SELECT = models.CharField(max_length=15,
                        choices=OPTIONS)
forms.py

class Registration(forms.ModelForm):
class Meta:
    model = Registration
    fields = '__all__'
    widgets = {'SELECT': forms.RadioSelect}
HTML


您指的是模型,而不是表单。请不要给模型和表单同名。将后缀形式添加到表单中是很常见的

# app/forms.py

from django import forms
from app.models import Registration

class RegistrationForm(forms.ModelForm):
    class Meta:
        model = Registration
        fields = '__all__'
        widgets = { 'SELECT': forms.RadioSelect }
然后在视图中,您可以创建如下表单:

# app/views.py

from app.forms import RegistrationForm
from django.shortcuts import redirect

def registration(request):
    if request.method == 'POST':
        reg = RegistrationForm(request.POST, request.FILES)
        if reg.is_valid():
            reg.save()
            return redirect('name-of-some-view')
    else:
        reg = RegistrationForm()
    return render(request, 'HTML/Registration.html', {'reg': reg})
注意:如果POST请求成功,您应该 实施。 这样可以避免在用户刷新日志时发出相同的POST请求 浏览器


您指的是模型,而不是表单。请不要给模型和表单同名。在我所有的表格中,只有一个表格末尾没有表格,谢谢你发现了这一点。它现在显示。
# app/views.py

from app.forms import RegistrationForm
from django.shortcuts import redirect

def registration(request):
    if request.method == 'POST':
        reg = RegistrationForm(request.POST, request.FILES)
        if reg.is_valid():
            reg.save()
            return redirect('name-of-some-view')
    else:
        reg = RegistrationForm()
    return render(request, 'HTML/Registration.html', {'reg': reg})