允许用户在Django中提交一次表单



我希望用户只能提交一次特定的表单。有没有可能没有任何js,react。。实际上只使用django??我试过类似的东西--

def apply(request):
p=0
if request.method=="POST":
p=1
...do something..
else:
...do something...

我试图获取p=1的值,并尝试不返回html,因为它提交了一次,但每次重载都会使p=0的值。我必须保存会话??或者什么是正确的方法?有人能提出什么建议吗?

我建议在您的用户模型中添加一个字段名form_submitted作为BooleanField(通过抽象基于用户模型(,以检查该用户是否提交了表单。您可以从request.User获取当前登录的用户。

models.py:

from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
# also do this if you have custom user model
form_submitted = models.BooleanField(default=False)
class Meta:
db_table = "users"

views.py:

def apply(request):
if request.method=="POST":
user = request.user
if not user.form_submitted:
# save the form
user.form_submitted = True
user.save()
else:
# this user already submitted the form

最新更新