我的问题很简单,我需要将一个视图中的值传递给另一个视图,而访问者无法在URL中看到该值。这是我的代码:
views.py
def home(request, message=None):
plats = Plat.objects.all()
return render(request, 'actualites/home.html', {'last_meals': plats, 'message': message})
@login_required
def proposer_plat(request):
try:
a = request.user.chef
if request.method == "POST":
form = PlatForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect(home)
else:
form = PlatForm()
return render(request, 'actualites/proposer_plat.html', {'form': form})
except ObjectDoesNotExist:
message = "Vous devez être enregistré comme chef pour effectuer cette action"
return redirect(home, message=message)
urls.py
urlpatterns = [
path('', views.home, name = 'home'),
path('meal/<int:id>', views.display, name = 'display'),
path('date', views.date_actuelle, name = 'date'),
path('contact', views.contact, name = 'contact'),
path('connexion', views.connexion, name = 'connexion'),
path('deconnexion', views.deconnexion, name = 'deconnexion'),
path('inscription', Inscription.as_view(), name = 'inscription'),
path('proposer-plat', views.proposer_plat, name = 'proposer-plat')
]
所以在这里,我需要将变量消息的值从“ proposer_plat”视图传递到“ home”视图。实际上,我收到了NoReverseMatch错误。我知道我愿意path('/<message>', views.home, name = 'home'),
,但是,此消息将显示在URL中,并且如果不在URL中提供消息,我将无法访问“主页”视图。我想我可以使用request(用POST或其他方法)传递值,但是我确实是Django的初学者,尽管我做了很多研究,但我不知道该怎么做。
有人可以解释我该怎么做(如果可能的话,举个例子)?