Как скрыть или изменить <pk> в url в приложении Django?
В моем url.py у меня есть:
path('gpd/<pk>/', views.gpd, name='gpd'),
мой view.py выглядит так:
@login_required(login_url='login')
def gpd(request,pk):
current_gpd = get_gpd(pk)
context = {'current_gpd ':current_gpd ,
'pk':pk, }
return render(request, 'app/gpd/gpd_form.html', context)
def get_gpd(id):
return GPD.objects.get(id=id)
Я заметил, что когда мой зарегистрированный пользователь меняет логин вручную pk - то он имеет доступ к странице с другим пк. Как это предотвратить?
моя модель GPG:
class GPD(models.Model):
id = models.AutoField(primary_key=True)
employee = models.ForeignKey(Employee, verbose_name='Employee', on_delete = models.CASCADE, related_name='+')
class Employee(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30, verbose_name='Name')
def get_gpd(id,user):
return GPD.objects.get(id=id, employee=user)
so pass in the request.user