I designed my Django project, I established the relations of my database, all goes well, except that when a user enters data, other users can see the same data, especially form using FOREIGNKEY.
When a user connects the data entered by others, precisely the FOREIGNKEY, reappears on the form of other users.
#models.py
from django.db import models
from django.contrib.auth.models import User
class Equipements(models.Model):
activite_compteur = [
(‘Actif’, ‘Actif’),
(‘Non_Actif’, ‘Non_Actif’),
]
choix_type = [
(‘prepayé’, ‘Prepayé’),
(‘postpayé’, ‘Postpayé’),
]
choix_phase = [
('Monophasique', 'Monophasique'),
('Diphasique', 'Diphasique'),
('Triphasique', 'Triphasique'),
]
choix_amperage = [
(5, 5),
(5, 10),
(15, 15),
(20, 20),
(25, 25),
(25, 30),
]
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_equipment')
num_compt = models.CharField(verbose_name="Numero du Compteur", null=False, max_length=20, unique=True)
amperage_compt = models.IntegerField(verbose_name="Amperage", null=False, choices=choix_amperage, )
phase_compt = models.CharField(verbose_name="Phase du compteur", null=False, choices=choix_phase, max_length=25)
type_compt = models.CharField(verbose_name="Type de compteur", null=False, choices=choix_type, max_length=10)
localite_compt = models.CharField(verbose_name="localité", null=False, max_length=15)
# date_enregistrement = models.DateField(verbose_name='Date enregistrement', auto_now_add=True, null=False)
date_dinstallation = models.DateField(verbose_name="Date d'installation", null=False)
date_abonmt_compt = models.DateField(verbose_name="Date d'abonnement", null=False)
compt_actif = models.CharField(verbose_name="Activité du compteur", choices=activite_compteur, max_length=15)
client = models.ForeignKey(Client, on_delete=models.CASCADE)
# agent = models.ForeignKey(Agent, on_delete=models.CASCADE)
# direction = models.ForeignKey(Directions, on_delete=models.CASCADE)
emplacement_equip = models.OneToOneField(Emplacement_equip, on_delete=models.CASCADE)
def __str__(self):
return f'{self.num_compt}'
#views.py
def forms(request):
if request.method == ‘POST’:
form = EquipementsForm(request.POST)
if form.is_valid():
equipements = form.save(commit=False)
equipements.user = request.user
equipements.save()
return redirect(‘forms’)
else:
form2 = EquipementsForm()
Equipement_user = Equipements.objects.filter(user=request.user)
context = {
'form2': form2,
'Equipement_user': Equipement_user
}
return render(request, 'forms.html', context)
#forms.py
class EquipementsForm(forms.ModelForm):
class Meta:
model = Equipements
fields = [‘num_compt’, ‘amperage_compt’, ‘phase_compt’, ‘type_compt’, ‘localite_compt’, ‘date_dinstallation’,
‘date_abonmt_compt’, ‘compt_actif’, ‘client’, ‘emplacement_equip’]