2017-10-09 5 views
0

Fondamentalement, je suis nouveau à Django. J'essaye de créer un site Web de feuille de temps où l'utilisateur choisira une tâche pour la semaine et puis ajoutera les heures qu'ils ont travaillées pour chaque jour cette semaine.Comment mettre les données d'un formulaire par défaut pour un autre dans la même vue dans django?

Cependant, chaque jour est destiné à être stocké dans un enregistrement individuel. Comment créeriez-vous un formulaire qui prendrait seulement une entrée de tâche, mais bouclez et créez 5 enregistrements, un pour chaque jour?

+1

Veuillez lire [Comment poser une bonne question] (https://stackoverflow.com/help/how-to-ask) puisque votre question est principalement basée sur l'opinion et large pour répondre correctement. – Nrzonline

+0

montrez ce que vous avez essayé ..... – amrit

Répondre

0

Si vous souhaitez créer plusieurs instances du même modèle lié au formulaire, utilisez des jeux de formulaires en ligne. Mais ceux-ci ne sont pas automatiques, vous devez les définir dans votre code.

La façon la plus simple de créer formsets en ligne avec dynamique ajout/suppression des modèles de formulaires connexes est d'utiliser NestedModelAdmin avec NestedStackedInline du package django-imbriqué-admin:

https://github.com/theatlantic/django-nested-admin

Disons que il y a Django Task modèle et Django modèle de l'événement avec plusieurs à un rapport au modèle du groupe:

from django.contrib import admin 
import nested_admin 

from .models import Event, Task 

class EventInline(nested_admin.NestedStackedInline): 
    model = Event 

class TaskAdmin(nested_admin.NestedModelAdmin): 
    inlines = [EventInline] 

admin.site.register(Task, TaskAdmin) 

avec ce petit code, vous aurez une dynamique puissante à de nombreux éditeur de modèle dans l'admin django. Mais dans ce cas, les utilisateurs doivent avoir accès à l'administrateur django. Sinon, définissez vous-même les formsets et gérez vous-même leur ajout/suppression. Il existe de nombreux tutoriels/modules enfichables pour cela.