Я начал Django с 2 недель, и я пытаюсь получить информацию из таблицы 'Зарплата' относительно pk 'matriculeemp', выбранного в URL, 'matriculeemp' является внешним ключом 'Salary' и pk изТаблица сотрудников.
Мне не удалось найти ответ ни по другому посту stackoverflow, ни по моим постам на других форумах, поэтому я прихожу к вам.У меня есть эти модели и это мнение.Эти пути в моем urls.py моей папке приложения:
Модели
class Salaire(models.Model):
date = models.DateField(db_column='Date')
charge_patronale_mensuel = models.FloatField(db_column='Charge_Patronale_Mensuel', blank=True, null=True)
charge_salariale_mensuel= models.FloatField(db_column='Charge_Salariale_Mensuel', blank=True, null=True)
autre_charge_mensuel_fixe = models.FloatField(db_column='Autre_Charge_Mensuel_Fixe', blank=True, null=True)
salaire_brut_mensuel = models.FloatField(db_column='Salaire_Brut_Mensuel', blank=True, null=True)
matriculeemp = models.ForeignKey(Employe, models.DO_NOTHING, db_column='MatriculeEmp', blank=True, null=True)
salaire_net_mensuel = models.FloatField(db_column='Salaire_Net_Mensuel', blank=True, null=True)
charge_variable_mensuel = models.FloatField(db_column='Charge_Variable_Mensuel', blank=True, null=True)
class Meta:
db_table = 'salaire'
ordering = ["date"]
class Employe(models.Model):
matriculeemp = models.AutoField(db_column='MatriculeEmp', primary_key=True)
nomemp = models.CharField(db_column='NomEmp', max_length=15, blank=True, null=True)
prenomemp = models.CharField(db_column='PrenomEmp', max_length=15, blank=True, null=True)
datenaissanceemp = models.DateField(db_column='DateNaissanceEmp', blank=True, null=True)
dateembaucheemp = models.DateField(db_column='DateEmbaucheEmp', blank=True, null=True)
genreemp = models.CharField(db_column='GenreEmp', max_length=10, blank=True, null=True)
codefonc = models.ForeignKey('Fonction', models.DO_NOTHING, db_column='CodeFonc', blank=True, null=True) # Field name made lowercase.
codecateg = models.ForeignKey(Categorie, models.DO_NOTHING, db_column='CodeCateg', blank=True, null=True) # Field name made lowercase.
codeville = models.ForeignKey('VilleEmp', models.DO_NOTHING, db_column='CodeVille', blank=True, null=True) # Field name made lowercase.
codedepartement = models.ForeignKey(DepartementEmp, models.DO_NOTHING, db_column='CodeDepartement', blank=True, null=True) # Field name made lowercase.
date_de_sortie = models.DateField(db_column='Date_De_Sortie', blank=True, null=True)
def __str__(self):
"""
String for representing the Model object (in Admin site etc.)
"""
return self.nomemp
class Meta:
db_table = 'employe'
ordering = ["nomemp"]
verbose_name = "Employé"
Просмотры
class EmployeDetailView(DetailView):
model = Employe
def employeDetailView(self,request,pk,salaire__matriculeemp):
try:
employe=Employe.objects.get(pk=pk)
salaire=get_object_or_404(pk=matriculeemp__matriculeemp)
#Book.objects.filter(publisher__name='BaloneyPress').count()
#albumgroupe= Album.objects.filter(nomgroupe__nomgroupe__contains=request.POST['searchgroupe'])
except Employe.DoesNotExist:
raise ("Book does not exist")
return render(
request,
'Compta-IMC/employe_detail.html',
context={'employe':employe, 'salaire':salaire}
)
urls
urlpatterns = [
path('', views.index, name='index'),
path('employes/', views.EmployeListView.as_view(), name='employes'),
#path('employe/<int:pk>', views.EmployeDetailView.as_view(), name='employe-detail'),
path('employe/<int:pk>', EmployeDetailView.as_view(), name='employe-detail'),
]
MyЦель состоит в том, чтобы получить всю информацию о заработной плате относительно прохода matriculeemp в pk в URL, чтобы опубликовать ее в моем шаблоне employee_detail.html, заранее благодарю за помощь.