これは自分自身(私の会社)にDjangoを採用すべきであることを証明する初めてのDjangoアプリですが、これまでのところ難しいことが分かりました。複数のManyToManyFieldフォームを持つDjango
私は、会社のすべての従業員とそれぞれの従業員の多くのスキルをカテゴリ別に整理したアプリを作成しようとしています。 は、ここに私のモデルです:
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)
私は、スキルやEmployeeSkill従業員を作成することができるよ、とさえ与えられた従業員のすべての従業員のスキルを示したが、私は苦労してるところ私が行くべきかであります従業員のすべての可能なEmployeeSkillsを表示し、その従業員が各EmployeeSkillに関連付けられたレベル(およびdesired_level)を変更できるようにするフォームを作成します。
助けてください!
Hola Marco、私が探していたものではありませんが、私の問題の許容可能な解決策につながりました。 –