Dies ist meine erste Django App, um mir (und meiner Firma) zu beweisen, dass wir Django adoptieren sollten, aber bis jetzt hat es sich als schwierig erwiesen.Django mit multiplen ManyToManyField Formular
Ich versuche, eine App zu erstellen, die alle Mitarbeiter eines Unternehmens und für jeden einzelnen die vielen Fähigkeiten des Mitarbeiters zeigt, die in Kategorien organisiert sind. Hier ist mein Modell:
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=64)
def __str__(self): # __unicode__ on Python 2
return self.name
class Skill(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE)
name = models.CharField(max_length=64)
def __str__(self): # __unicode__ on Python 2
return self.name
class Employee(models.Model):
login = models.CharField(max_length=16)
fullname = models.CharField(max_length=64)
skills = models.ManyToManyField(Skill, through='EmployeeSkill')
def __str__(self): # __unicode__ on Python 2
return self.fullname
class EmployeeSkill(models.Model):
employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
skill = models.ForeignKey(Skill, on_delete=models.CASCADE)
LEVELS = (
('0', 'None'),
('1', 'Very Basic Knowledge (hours)'),
('2', 'Basic Knowledge (days)'),
('3', 'Good Understanding Knowledge (weeks)'),
('4', 'Excellent Knowledge (months)'),
('5', 'Expert Knowledge (years)'),
)
level = models.CharField(max_length=1, choices=LEVELS)
desired_level = models.CharField(max_length=1, choices=LEVELS)
def __str__(self):
return "{} level of knowledge for {} is {}/desired is {}".format(self.employee.fullname, self.skill.name, self.level, self.desired_level)
Ich bin in der Lage einen Mitarbeiter, eine Fähigkeit und einen EmployeeSkill, zu erstellen und sogar für einen bestimmten Mitarbeiter alle Fähigkeiten der Mitarbeiter zeigen aber, wo ich bin zu kämpfen, wie ich gehen sollte Erstellen eines Formulars, das alle möglichen EmployeeSkills für einen Mitarbeiter anzeigt und es diesem Mitarbeiter ermöglicht, die mit jedem EmployeeSkill verknüpfte Ebene (und den gewünschten_Level) zu ändern.
Bitte helfen!
Hola Marco, nicht genau das, was ich suchte, aber es führte mich zu einer akzeptablen Lösung für mein Problem, und so muchas gracias! –