неразрешенная ссылка на атрибут «объекты» для класса - PullRequest
0 голосов
/ 03 марта 2020

Я довольно новичок в кодировании и пытаюсь сделать сайт на django. Я что-то сломал при попытке отфильтровать класс UserBets по текущему пользователю. Кто-нибудь может увидеть, что я сделал не так?

# views.py
class UserBetListView(ListView):
    model = UserBets
    template_name = 'betassistant/userbets.html'
    context_object_name = 'my_bets'
    paginate_by = 8

    def get_queryset(self):
        user = get_object_or_404(User, username=self.kwargs.get('username'))
        return UserBets.objects.filter(User=user)

# urls.py
 path('userbets/<str:username>', UserBetListView.as_view(), name='bet-userbet'),

# models.py
class UserBets(models.Model):
    sport = models.CharField(max_length=50, choices=sport_choices, default='NRL')
    bet_type = models.CharField(max_length=50, choices=bet_choices, default='H2H')
    Tipper_Choices = models.CharField(max_length=50, choices=tipper_choices, default='Trypod')
    bet_ammount = models.FloatField(max_length=10, default=2)
    bet_odds = models.FloatField(max_length=10, default=2)
    result = models.CharField(max_length=50, choices=result_choices, default='Winner')
    User = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.sport

    def get_absolute_url(self):
        return reverse('bet-detail', kwargs={'pk': self.pk})

1 Ответ

0 голосов
/ 03 марта 2020

Вам нужно правильно назвать свою модель, измените

sport = models.CharField(max_length=50, choices=sport_choices, default='NRL')
bet_type = models.CharField(max_length=50, choices=bet_choices, default='H2H')
Tipper_Choices = models.CharField(max_length=50, choices=tipper_choices, default='Trypod')
bet_ammount = models.FloatField(max_length=10, default=2)
bet_odds = models.FloatField(max_length=10, default=2)
result = models.CharField(max_length=50, choices=result_choices, default='Winner')
User = models.ForeignKey(User, on_delete=models.CASCADE)

def __str__(self):
    return self.sport

def get_absolute_url(self):
    return reverse('bet-detail', kwargs={'pk': self.pk})

на

class UserBets(models.Model):
    sport = models.CharField(max_length=50, choices=sport_choices, default='NRL')
    bet_type = models.CharField(max_length=50, choices=bet_choices, default='H2H')
    Tipper_Choices = models.CharField(max_length=50, choices=tipper_choices, default='Trypod')
    bet_ammount = models.FloatField(max_length=10, default=2)
    bet_odds = models.FloatField(max_length=10, default=2)
    result = models.CharField(max_length=50, choices=result_choices, default='Winner')
    User = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.sport

    def get_absolute_url(self):
        return reverse('bet-detail', kwargs={'pk': self.pk})

Обновите метод get_queryset в views.py на:

def get_queryset(self):
    return UserBets.objects.filter(User__username=self.kwargs.get('username'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...