IT박스

추가 필드와 장고의 ManyToMany 관계

itboxs 2020. 12. 5. 09:26
반응형

추가 필드와 장고의 ManyToMany 관계


자동으로 생성 된 ManyToMany 조인 테이블에 몇 가지 추가 정보를 저장하고 싶습니다. 장고에서 어떻게할까요?

제 경우에는 "Employees"와 "Projects"라는 두 개의 테이블이 있습니다. 내가 저장하고 싶은 것은 각 프로젝트에서 각 직원이 시간당 얼마나 많은 일을 받는지입니다. 그 값은 동일하지 않기 때문입니다. 그래서 어떻게할까요?

나에게 일어난 일은 "ManyToManyField"메서드 대신 세 번째 클래스 / 테이블을 명시 적으로 생성하여 새 정보를 저장하고 "ForeignKey"메서드를 사용하여 "Employees"및 "Projects"와의 관계를 설정하는 것입니다. 나는 그것이 작동 할 것이라고 확신하지만 이것이 최선의 접근 방식입니까?


다음은 달성하려는 작업의 예입니다.

http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships

링크가 끊어지는 경우 :

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=128)

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Group(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(Person, through='Membership')

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Membership(models.Model):
    person = models.ForeignKey(Person)
    group = models.ForeignKey(Group)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)

참고 URL : https://stackoverflow.com/questions/4443190/djangos-manytomany-relationship-with-additional-fields

반응형