나는 모든 만화 구매를 기록하는 django 데이터베이스를 만들려고 노력 중이며 몇 가지 문제가 발생했습니다. 저는 만화 쟁점과 그것에 관련된 예술가들 사이의 관계를 모델링하려고합니다.관계에 대한 추가 데이터가있는 many to many 관계
만화 문제에는 한 명 이상의 아티스트가 문제를 해결하고 있으며 아티스트는 두 가지 이상의 문제를 해결합니다. 또한 작가는 만화 제작자 (그 문제에 관한 모든 작업), 작가 (대본 작성), 서랍 (전체 만화 그리기), 연필, 잉크, 색상 또는 텍스트에 대한 역할을 담당합니다. 주어진 역할에 여러 명의 아티스트가있을 수 있습니다. 나는 다음 장고 모델로이 번역
이 나에게 같은 데이터베이스 모델을 제공
.
1)이 올바른을 보이는가 : 나는 관계에 대한 추가 데이터를 필요로하기 , 나는 내가 관계를 처리하기 위해 별도의 클래스를 사용하고
class Artist(models.Model):
name = models.CharField(max_length = 100)
def __unicode__(self):
return self.name
class ComicIssue(models.Model):
issue_number = models.IntegerField()
title = models.TextField()
artists = models.ManyToManyField(Artist, through='IssueArtist')
def __unicode__(self):
return u'issue = %s, %s' % (self.issue_number, self.title)
class IssueArtist(models.Model):
roles = ((0, "--------"),
(1, "Creator"),
(2, "Writer"),
(3, "Drawer"),
(4, "Pencils"),
(5, "Inks"),
(6, "Colours"),
(7, "Text"),
)
artist = models.ForeignKey(Artist)
issue = models.ForeignKey(ComicIssue)
role = models.IntegerField(choices = roles)
내 질문에 추가
가 개최 믿습니다 이 모델링 방법?2) through='IssueArtist'
기능을 사용하지 않으면 artists.add()
기능을 사용하여 관계를 추가 할 수 있습니다. 이것을 사용하면 'ManyRelatedManager' object has no attribute 'add'
오류가 발생합니다. IssueArtist()
인스턴스를 만들고 관계 테이블을 명시 적으로 검색하여 관계를 수동으로 관리해야합니까? NB. 현재 Django 1.0을 사용 중입니다.
이 링크는 내가 찾고 있었지만 찾지 못한 것입니다. 나는 나의 수색 기술을 볼 필요가있다 생각한다. –
이것은 장고의 진짜 '거친 바다'부분입니다. 오류 메시지는 잘못된 것이며 추가/작성 방법은 실제로 예상대로 작동해야합니다. 이 답변을 게시 해 주셔서 감사합니다. – Rich
그냥 create() 메서드를 사용하는 경우 a.save() 불필요한 지적했다. https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.create –