【问题标题】:How do I gather objects related to this primary key如何收集与此主键相关的对象
【发布时间】:2016-04-25 17:59:37
【问题描述】:

所以在我看来,我可以访问这个模型。从这里我也可以访问冠军,这是一个lolChamp。现在 lolChamp 有了这个 infoID,它是它的主键。这个字段是一堆其他表的外键,这些表包含我想要的信息。但我似乎无法掌握这些信息。我已经在我的 html 中尝试过。我从 django 民意调查教程中得到了这个想法。

{% for spell champBuild.spellSet_set.all %}
    <h1> {{spell.spell_name}} </h1>
{% endfor %}

^什么都不做

class champBuild(models.Model):
    champion = models.ForeignKey(lolChamp, default="-1")
    build_name = models.CharField(max_length=200, primary_key=True, default=time.time())
    build_date = models.DateTimeField('date created')
    items = models.ForeignKey(lolItem, default=0)
    items2 = models.ForeignKey(lolItem, default=0, related_name='item2')
    items3 = models.ForeignKey(lolItem, default=0, related_name='item3')
    items4 = models.ForeignKey(lolItem, default=0, related_name='item4')
    items5 = models.ForeignKey(lolItem, default=0, related_name='item5')
    items6 = models.ForeignKey(lolItem, default=0, related_name='item6')

class lolChamp(models.Model):
    champ_name = models.CharField(max_length=50, unique=True)
    champ_title = models.CharField(max_length=50, unique=True)
    full_img = models.CharField(max_length=50)
    sprite = models.CharField(max_length=50)
    x = models.IntegerField()
    y = models.IntegerField()
    w = models.IntegerField()
    h = models.IntegerField()
    tags = models.TextField()
    infoID = models.IntegerField(primary_key=True)
    def __str__(self):
        return self.champ_name
class spellSet(models.Model):
    champid = models.ForeignKey(lolChamp, on_delete=models.CASCADE, default=0)
    spell_name = models.CharField(max_length=100, primary_key=True)
    full_img = models.CharField(max_length=100)
    def __str__(self):
        return self.spell_name

这是在我看来.py

from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.views import generic
from .models import champBuild
from lolBuilds.models import lolItem, skinSet
from .forms import champBuildForm, champBuildUpdateForm
# Create your views here.

class DetailView(generic.DetailView):
    model = champBuild
    template_name = 'lolBuilds/detail.html'

我如何获得我的一组都具有 lolChamp 外键的咒语?

【问题讨论】:

  • 你为什么不正确的查询集?为什么要明确定义主键?

标签: django django-models django-templates django-views


【解决方案1】:
spells = spellSet.objects.filter(champid=champ.infoID) # champ is an object of lolchamp model

https://docs.djangoproject.com/en/1.9/topics/db/queries/

了解查询集

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多