Можно ли с помощью Django предотвратить/запретить доступ к странице более чем одному человеку?
Можно ли с помощью Django предотвратить/запретить доступ к странице более чем одному человеку? Например: У меня есть экран редактирования для продукта, и если кто-то получает доступ к этой странице, для этого продукта, я не хочу, чтобы кто-то, кроме меня, мог войти в этот url, чтобы быть более ясным, допустим, я редактирую продукт под названием "smartphone " и его маршрут http://localhost:8000/product/edit/smartphone, когда кто-то пытается редактировать этот продукт, он не может войти на страницу. Вот в чем мой вопрос. Я не знаю, было ли это очень ясно, но я прошу, чтобы тот, кто знает, мог помочь мне.
Я не уверен, что вы хотите, Но то, что я понимаю,
Вы хотите, чтобы один человек занимался редактированием смартфона, а другие не занимались, а только просматривали смартфон.
Попробуйте сделать этого человека суперпользователем.
def edit_smartphone(request):
if request.user.is_superuser:
.....
else:
return HttpResponse('You do not have authority to edit this, try contacting Owner.')
Я не совсем понимаю ваш вопрос
Использование воображаемой модели SmartPhone В models.py
class SmartPhone(models.Model):
# your model properties
В views.py
def edit_smartPhone(request, pk):
if request.user.is_superuser:
smartphone = SmartPhone.objects.get(id=pk)
form = SmartPhoneForm(instance=smartphone)
if request.method == 'POST':
form = SmartPhoneForm(request.POST, instance=smartphone)
if form.is_valid():
form.save()
return redirect("/")
else:
return redirect('/')
return render(request, 'your-template-name.html', context={'form':form})
В вашем urls.py
urlpatterns = [
path('/product/edit/smartphone/<str:pk>/', views.update_smartPhone)
]
Я не уверен, что это ответ на ваш вопрос.