m2m 필드에 주문 필드를 추가 할 수 있도록 관통 모델을 만들었지 만 아래 def number ()를 통해 주문 필드를 자동으로 증가시키는 데 문제가 있습니다. 객체를 추가 할 때 + : 'dict'및 'int'에 대해 TypeError 지원되지 않는 피연산자 유형이 표시되고 그 이유를 모르겠습니다. 어떤 아이디어?
models.py :
class Playlist(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
name = models.CharField(max_length=50)
tracks = models.ManyToManyField(Track, through='PlaylistTrack')
def __str__(self):
return self.name
class PlaylistTrack(models.Model):
def number():
last_order = PlaylistTrack.objects.all().aggregate(Max('order'))
if last_order == None:
return 1
else:
return last_order + 1
track = models.ForeignKey(Track)
playlist = models.ForeignKey(Playlist)
order = models.PositiveIntegerField(default=number)
class Meta:
ordering = ['order']
문서에서 언급했듯이 aggregate()
dict 객체를 반환합니다. 따라서 변수 last_order
는 실제로 dict이고 dict에 숫자를 추가하려고합니다.
dict에서 값을 얻은 다음 추가해야합니다.
return last_order['order__max'] + 1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다