【问题标题】:Django Reverse Filter Queryset Foreign Key Example Not WorkingDjango反向过滤查询集外键示例不起作用
【发布时间】:2020-05-29 07:31:54
【问题描述】:

我大致遵循此处列出的示例:

Django Queryset with filtering on reverse foreign key

型号:

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 错误:)

提前致谢。

【问题讨论】:

  • 两个下划线id__in
  • 好的,谢谢,为清楚起见进行了编辑。创建以下 TypeError:'ForwardManyToOneDescriptor' 对象不可迭代

标签: django python-3.x


【解决方案1】:

您需要获取网站:

from django.contrib.sites.shortcuts import get_current_site

def example_view(request):
    profiles = Profile.objects.filter(sitename=get_current_site(request))

【讨论】:

    猜你喜欢
    • 2015-11-04
    • 2016-04-13
    • 2016-07-01
    • 2013-09-17
    • 2012-11-18
    • 2022-06-25
    • 1970-01-01
    • 2014-01-08
    • 2020-06-22
    相关资源
    最近更新 更多