Je suis en train de faire une petite app pour de la gesion d'appartement.
La partie sur laquelle je travaille en ce moment est la gestion d'accessoire pour chaque appartement. J'ai déjà réussi à produire qql chose mais j'ai du mal lors de la validation de mon formulaire à gérer la correspondance entre accessoires et appartement.
Comment devrais-je m'y prendre pour obtenir ce résultat : une page contenant une listes d'articles chacun possédant un status modifiable avec 3 / 4 options (Indispo, Dispo, Livré par exemple).
Mes tables sont correctes je pense :
Les accessoires
Les appartements :
Les accessoires d'appartements (ou l'on peut changer leur statu) :
J'aimerais avoir des conseils sur l'approche à avoir pour réaliser ce genre de fonctionnalité, j'aimerais que le tout soit réactif et que le simple fait de sélectionner parmis le choix multiple déclenche l'enregistrement en base donnée.
Il faut un peu plus détailler... Quelle est la problématique ?
La construction du model mettant en relation appartements et accessoires
La configuration des vues
La création du formulaire
Le template
Les urls
...
indiquez ce que vous avez fait, voir mieux si cela est sur un projet GitHub ou GitLab c'est top !
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Très bien je comprend. La construction du model mettant en relation appartements et accessoires m'a pas mal posé problème, mais c'est du passé. Je ne sais pas si c'est explicite mais en vous partageant les tables je pensais qu'on pourrait le voir.
Mon problème réside à la manière de procéder pour la modification du status des accessoires. Comment emmener ca ? Via des formulaires unique pour chaque accessoire (via un formset ?), un formulaire unique qui comporterait tous les accessoires avec un bouton submit en bas de page pour valider les modifications ? Ou alors y'a t-il une autre approche que les formulaires ?
N'avez vous pas la possibilité de déduire la valeur du status de manière automatisée ? Si vous avez beaucoup d'accessoires, ça risque d'être très pénible, non ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
C'est en fait une forme de checklist, en effet il y aura beaucoup d'accessoires (entre 20 et 30). Lors de la préparation d'un logement, je "cocherais" le matériel préparé (prêt à être livré), puis l'idéal serait de pouvoir faire basculer cette liste de matériel prêt en matériel livré. Pourquoi le choix de faire une app et non de marquer ca sur un bout de papier ? Centraliser l'information pour que les personnes de mon équipe puissent suivre l'avancement de cette préparation et y participer. Et bien sûr par défaut nous sommes sur un status "Non pris en charge".
Merci pour ton retour
Edit :
C'est enfin fonctionnel !
def sheets(request, apartment_id):
apartment = get_object_or_404(Apartment, id=apartment_id)
apartment_sheets = ApartmentSheets.objects.filter(apartment_id=apartment_id)
if request.method == "POST":
for sheet in apartment_sheets:
form = SheetForm(request.POST, instance=sheet, prefix=str(sheet.id))
if form.is_valid():
form.save()
return redirect('check_arrangement:sheets', apartment_id=apartment_id)
forms = [SheetForm(instance=sheet, prefix=str(sheet.id)) for sheet in apartment_sheets]
context = {
'apartment': apartment,
'apartment_sheets': apartment_sheets,
'forms': forms
}
return render(request, 'check_arrangement/sheets.html', context)
Un paramètre instance et prefix passer au formulaire pour les lier et les distinguer !
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Linaki, l'excellence garantie !
My website