J'ai une vue basée sur la classe ouvrière simple héritant UpdateView.Faire UpdateView accepter un pk crypté dans urls.py et retourner un objet de modèle pour l'édition après avoir déchiffré le pk
class UpdateModel(UpdateView):
model = ModelName
fields = ['field_1' , 'field_2' , ]
template_name_suffix = '_update_form'
success_url = reverse_lazy('home')
et l'url qui associe revenir à ce point de vue
url(r'^edit/(?P<pk>[\w-]+)$' , UpdateModel.as_view() , name="update_model"),
Maintenant la question Je suis face est que je chiffre habituellement la valeur PK avant de l'envoyer à l'extérieur (car ils sont sensible). Quand je les reçois, je les décrypte pour obtenir l'objet modèle.
Brève opération du processus de cryptage.
def pk_encoder(pk):
int_pk = int(pk)
hashids = Hashids("MySalt")
encoded_pk = hashids.encode(pk_id)
return encoded_pk
ans que je l'utilise de la même hashids.decode ('string') pour obtenir mon modèle objet.
Mais dans UpdateView il n'y a pas de disposition pour cela (que je connais). Dans urls.py, il accepte simplement le pk id pour renvoyer le formulaire correspondant à la mise à jour d'un modèle. Je comprends que je dois redéfinir UpdateView ou l'une de ses fonctions d'une certaine façon, mais ne peux pas comprendre comment. Puis-je savoir comment modifier cette fonctionnalité de UpdateView
Merci d'avance.