因此,我有一个登录用户可以填写的表单,当提交该表单时,我希望它生成一个临时链接到另一个未登录用户可以访问和填充的表单,该链接将持续24小时。然后,该表单将向数据库发送数据。这种联系只有效几次。该数字由登录用户以第一种形式确定。
我希望这个URL尽可能短,并且可以在浏览器上手动写下来,但我不知道最好的方式,甚至不知道如何写。
第一个表单已经完成,只有登录用户才能填写,但我不知道如何生成该临时链接。
请记住,我对Django相当陌生。
Views.py
class GenFormPageView(LoginRequiredMixin, TemplateView):
login_url = '/'
def get(selfself, request, **kwargs):
if request.method == 'POST':
formation_form = genForm(data=request.POST)
if formation_form.is_valid():
cdata = formation_form.cleaned_data.get
else:
print('Invalid')
else:
formation_form = genForm()
return render(request, 'genform.html', {'formation_form': formation_form})Forms.py
class genForm(forms.ModelForm):
liste_formation = []
formations_info = {}
for formation in Formation.objects.all():
if formation.libelle in formations_info:
formations_info[formation.libelle].append(formation.formateur, formation.dateDebut, formation.dateFin,
formation.nbJours, formation.cours)
else:
info = {'formateur':formation.formateur.get_full_name(), 'dateDebut':formation.get_debut(), 'dateFin':formation.get_fin(), 'nbJours':formation.nbJours, 'cours':formation.cours.get_titre()}
formations_info[formation.libelle] = info
liste_formation.append(formations_info)
formations = [str(formation) for formation in Formation.objects.all()]
formation_select = forms.ChoiceField(label='Formation', choices=([(formation, formation) for formation in formations]), required = True)
formateur = forms.CharField(label='Formateur')
cours = forms.CharField(label='Cours')
nombre_eleves = forms.IntegerField(label='Nombre d\'élèves', min_value=1)
formations = json.dumps(formations_info)
class Meta:
model = Formation
fields = ('formation_select', 'formateur', 'dateDebut', 'dateFin', 'nbJours', 'cours', 'nombre_eleves')urls.py
url(r'^genform/$', views.GenFormPageView.as_view()),这里是字段tht将确定新表单可以提交的时间。

当我单击“Generer”按钮时,它会创建一个指向表单的链接。该表单只能提交固定的时间,如果在生成的时间后24小时内单击该表单,则链接只能导致该表单。
我现在正在尝试的是在我的数据库中创建一个字段,其中包含生成表单的时间,然后我将检查时间是否有效,并且只有当它有效时才显示该表单。
这是我现在的主意,但我还是不知道该怎么做。
发布于 2018-05-18 08:20:58
因此,为了回答我的问题,我最终决定在我的数据库中使用一个字段,其中包含创建表单的日期,然后我将检查今天的日期是否是从我的数据库中的日期起24小时内。
https://stackoverflow.com/questions/50151208
复制相似问题