django - 嗨,我发现很难从views.py在我的模板中传递一个显示表单请任何帮助将不胜感激
问题描述
几天来我一直在尝试修复此错误但无济于事,我真的需要有关如何在模板 Views.py中传递显示上下文的帮助
def registerView(request):
if request.method == 'POST':
form = UserRegisterForm(request.POST)
p_reg_form = ProfileRegisterForm(request.POST)
if form.is_valid() and p_reg_form.is_valid():
user = form.save()
user.refresh_from_db() # load the profile instance created by the signal
p_reg_form = ProfileRegisterForm(request.POST, instance=user.profile)
p_reg_form.full_clean()
p_reg_form.save()
messages.success(request, f'Your account has been sent for approval!')
return redirect('login')
else:
form = UserRegisterForm()
p_reg_form = ProfileRegisterForm()
context = {
'form': form,
'p_reg_form': p_reg_form
}
return render(request, 'stackusers/register.html', context)
表格.py
class ProfileRegisterForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['city', 'state', 'country', 'referral']
模型.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='profile_pics')
confirmed = models.BooleanField("Confirmed", default=False)
city = models.CharField("City", max_length=50, blank=True)
state = models.CharField("State", max_length=50, blank=True)
country = models.CharField("Country", max_length=50, blank=True)
referral = models.CharField("Referral", max_length=50, blank=True)
def __str__(self):
return f'{self.user.username} Profile'
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
注册.html
<form method="POST">
{% csrf_token %}
{{context}}
</form>
解决方案
在你的 template.html 中解决这个问题
<p>{{ form.as_p }}</p
<p>{{ p_reg_form }}</p
推荐阅读
- java - javax.enterprise.event 与 org.eclipse.microprofile.reactive.messaging 的优缺点是什么?
- python - Python3 - imaplib - 使用 pem 证书解密
- r - R中的汇总函数没有给出频率表
- javascript - React 应用程序在本地系统上加载时间过长
- swift - 如何使用单例类中的枚举状态在 Swift UI 中触发视图中的警报
- javascript - Gatsby.js,无法加载 tensorflow.js 和 bodypix
- python - 如何从 DevOps 工件包中获取文件名 - Azure
- xml - XQuery:“order by”在“for-each-pair”中不起作用
- java - 在 JAVA OOP 中更改类的属性类型 - 隐式和显式转换
- vue.js - vue 环境变量返回空对象