我有一个视图,该视图将2个表单呈现为模板,但是只有一个呈现,另一个不显示,也没有给我任何错误,但是当我在控制台中打印该表单时,可以看到该表单显示。
这是我的表单不显示的模型
class Organization(models.Model):
name = models.CharField(max_length=255, null=True)
这是管理员的模型,我是从AbstractUSer继承的
class User(AbstractUser):
is_user = models.BooleanField(default=False)
is_admin = models.BooleanField(default=False)
这是模型的形式
class OrganizationForm(forms.ModelForm):
name = forms.CharField(max_length=255)
class Meta:
model = Organization
fields = ['name']
这是管理员的表单
class AdminSignUpForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = User
fields = ['username','email']
def save(self, commit=True):
user = super().save(commit=False)
user.is_admin = True
if commit:
user.save()
return user
这是我称之为多种形式的视图
def signup(request):
if request.method == 'POST':
adminForm = AdminSignUpForm(request.POST)
orgForm = OrganizationForm(request.POST)
if adminForm.is_valid() and orgForm.is_valid():
adminForm.save()
orgForm.save(commit=False)
username = adminForm.cleaned_data.get('username')
raw_password = adminForm.cleaned_data.get('password1')
user = authenticate(username=username, password=raw_password)
login(request, user)
return redirect('myapp:home')
else:
adminForm = AdminSignUpForm()
orgForm = OrganizationForm()
print(orgForm)
return render(request, 'registration/signup_form.html', {'OrgFrom': orgForm,'Adminform': adminForm})
这是我要呈现多种形式的模板
<form enctype="multipart/form-data" method="post" >
{% csrf_token %}
<input type="hidden" name="next" value="{{ next }}">
{{Adminform.as_p }}
{{ OrgForm.as_p }}
<button type="submit" class="btn btn-success">Sign up</button>
</form>
我希望这两个表单都可以显示,但是只有Adminform可以显示,并且可以正常使用
答案 0 :(得分:2)
有一个错字。您需要使用{{ OrgFrom.as_p }}
而不是{{ Orgform.as_p }}
。