Django Пример внешнего ключа обратного фильтра Queryset не работает - PullRequest
0 голосов
/ 13 февраля 2020

Я свободно следую приведенному здесь примеру:

Django Queryset с фильтрацией по обратному внешнему ключу

Модель:

class Site(models.Model):
    name = models.CharField(max_length=50)

class Profile(models.Model):
    Days = '1st'
    Mids = '2nd'
    Nights = '3rd'
    Work_Schedule_Choices = [
      (Days, 'Day Shift'),
      (Mids, 'Mid Shift'),
      (Nights, 'Night Shift'),
    ]  
    sitename = models.ForeignKey(Site, on_delete=models.CASCADE, related_name='profiles')
    title = models.CharField(max_length=100)
    schedule = models.CharField(max_length=3,choices=Work_Schedule_Choices,default=Days)
    totalusers = models.PositiveSmallIntegerField(default=1, validators=[MinValueValidator(1), MaxValueValidator(50)])

просмотров:

def sitedetail(request):
site = Profile.objects.filter(id__in=Profile.sitename)
if request.method == 'GET':
    return render(request, 'App/site-detail.html', {'profile_set': Profile.objects.all(site)})

Когда я загружаю страницу, она выдает ошибку TypeError:

ForwardManyToOneDescriptor 'не повторяется

Может кто-нибудь помочь мне понять, что я я делаю не так? Я вижу, что одна и та же статья стека ссылалась много раз, поэтому я предполагаю, что это ошибка Operator-Head-Space-Timing :)

Заранее спасибо.

1 Ответ

1 голос
/ 14 февраля 2020

Вам необходимо получить сайт:

from django.contrib.sites.shortcuts import get_current_site

def example_view(request):
    profiles = Profile.objects.filter(sitename=get_current_site(request))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...