내 모델 중 하나에 모든 링크를 가져 와서 임의의 샘플을 수행하는 메소드가 있습니다. Django 모델을 사용하여 임의의 선택과 결합 된 조인을 만들 수 있습니까? 현재의 방법은 데이터가 커지면 응용 프로그램을 중단시켜 낭비하는 좋은 방법 인 것 같습니다. :)Django 모델을 사용하여 조인을 사용하여 샘플링
class Link(models.Model):
link = models.URLField()
in_list = models.ForeignKey('linkrotator.LinkList',
related_name = 'links')
class LinkList(models.Model):
in_list = models.ForeignKey('linkrotator.LinkListList',
blank = True,
null = True,
on_delete=models.SET_NULL,
related_name = 'lists')
class LinkListList(models.Model):
number_of_links = models.IntegerField()
def get_links(self):
links = []
for list in self.lists.all():
links.extend(list.links.all())
if len(links) <= self.number_of_links:
return links
return random.sample(links, self.number_of_links)
것이 유용 생각 : 당신은 그것을 얻기 위해 이런 일을 할 수 있는가? 목록이 연결된 모든 링크를 가져올 수 없습니까? '링크 = Link.objects.filter (list__isnull = False)'와 비슷한 것 @ – Carlos
@chromano - 목록의 하위 집합에서 링크를 가져오고 있습니다. 더 많은 모델로 코드를 업데이트했습니다. –