Je vais mal comprendre quelque chose! Si mon modèle n'est pas enregistré, il n'a pas d'identifiant qui lui est associé. Donc si j'ai quelque chose comme ça:
j'ai aussi Une image et une utilisation upload_to pour l'imagefield. Il y a deux problèmes: l'identifiant n'est pas et je ne sais pas comment manipuler / enregistrer le où je veux enregistrer mon image sur: p> où Qu'est-ce que j'obtiens réellement: p> (mais 'id' devient "aucun" car il n'existe pas!) P> Mon code précédent a fonctionné. Il enregistrerait sur le bon emplacement, mais avec ce code actuel, cela ne fonctionne pas. Donc, le problème de sauvegarde ne semble pas que cela soit dû à des paramètres.py puisque cela fonctionnait précédemment. P> EDIT: supprimé non-code de la zone de mise en forme du code p> EDIT: J'ai découvert pourquoi je n'établissais pas au bon endroit. Comme il s'est avéré, j'ai oublié de noter quelque chose quand je couche des paramètres modifiés .PY. L'épargne à l'emplacement fonctionne maintenant! Désolé gars! P> Edit: Je pense que l'ID = aucun problème n'est causé par le formulaire (). Si j'évite de le faire et que je viens d'enregistrer directement sur le modèle directement, je n'ai pas ce problème. P> p> vues.py code> (insérer ou modifier les informations existantes utilise le même modelorm) p>
instance = book code> afin que je reçoive réellement un identifiant. Le deuxième problème est l'emplacement que j'ai enregistré mes données à la sortie. Même si l'étiquette de modèle
http: 127.0.0.1: 8000 / dossier1 / ID / code>, l'emplacement réel est ailleurs: p>
id code> est l'ID de livre. < / P>
3 Réponses :
pour la première partie: sauvegard_book = form.save () code> vous permet d'utiliser
sauvegard_book code> comme instance enregistrée de bookmodel et
save_book.id code> est son identifiant. p> p>
Merci! Ouais, j'ai essayé quelque chose comme ça. Cela crée toujours le dossier Aucun, mais cette fois, cela crée également le dossier d'identification. Par exemple, si je fais sauvegarde_book.img.save ('img', demande.files ['img']) code>, l'IMG sera enregistré dans / non et / 1.
ID n'attribue que lors de sauvegarder des objets lorsque vous utilisez un champ d'identifiant automatique (par défaut). Vous pouvez enregistrer l'élément avant de manipuler une image, puis sauvegarder l'image.
Peut être que vous ne pouvez pas vous inquiéter de Nom de l'image - Becouse Django File Storages n'a aucun problème avec les mêmes noms d'image. Donc si vous enregistrez simplement fichier "image.png", puis enregistrez un autre fichier avec nom "image.png" - alors il sera enregistré comme "image_1.png" p>
Merci. J'aime la façon dont vous avez géré le problème conditionnel (je vais copier ce style, heh heh). Mais je n'obtiens toujours pas "Aucun" pour id ... Je pense que c'est peut-être lorsque le formulaire enregistre qui causait le problème de l'Aucun. J'ai retourné à mon ancien code, alors ça marche pour l'instant.
def créer_id (instance, quelque_id = aucun): def pré_save_post_recefeiver (expéditeur, instance, * args, ** kwargs): P> if not instance.id:
instance.id = create_id(instance)