Ich habe zwei Tabellen mit fk in einem von ihnen.Wie zwei Tabellen durch Tasten in Django QuerySet verbunden werden
parent:
+----+---------+
| Id | Name |
+----+---------+
| 1 | Test #1 |
| 2 | Test #2 |
| 3 | Test #3 |
+----+---------+
und Kind:
+----+---------+-----------+
| Id | Traffic | parent_id |
+----+---------+-----------+
| 1 | 1000 | 1 |
| 2 | 2000 | 3 |
+----+---------+-----------+
Ich brauche eine queryset zu machen für meine Form Tabellen durch Tasten zu verbinden, so etwas wie:
select p.parent_id, p.traffic, c.name from child c, parent p where c.parent_id = p.id
Gibt es eine einfache Möglichkeit, es zu tun?
BEARBEITEN: Ok, ich werde echte Probe zeigen, was ich haben muss. Es gibt zwei Modelle Server und Ressourcen:
class Server(models.Model):
public_name = models.CharField(_(u'public name'),
max_length=60,
blank=False,
null=False,
unique=False)
server_ident = models.CharField(_(u'server identificator'),
max_length=100,
blank=False,
null=False,
unique=True)
class Meta:
db_table = 'server'
ordering = ('public_name',)
abstract = False
def __unicode__(self):
return self.public_name
und:
class Resources(models.Model):
server = models.ForeignKey(Server,
on_delete=models.CASCADE)
traffic_left = models.FloatField(_(u'traffic left'),
blank=False,
null=False,
default=0.0)
requests_left = models.IntegerField(_(u'requests left'),
blank=False,
null=False,
default=0)
class Meta:
db_table = 'resources'
abstract = False
Form:
class ProjectNewForm(forms.Form):
servers_query = Resources.objects.all()........
project_name = forms.CharField(required=True,
min_length=2,
max_length=14,
label=_(u'Project name'))
project_description = forms.CharField(required=True,
max_length=2000,
widget=forms.Textarea(
attrs={'rows': 4}
),
label=_(u'Project description'))
server = forms.ModelChoiceField(queryset=servers_query,
required=True,
initial=0,
widget=forms.Select,
label=_(u'Server'))
class Meta:
fields = [
'project_name',
'project_description',
'server',
]
ich auf meiner Vorlage, um einen selectbox zeigen muß ("Server" Feld von ProjectNewForm) Was enthält public_name von Server-Modell wie Text für Options-Tag und Resources.server.id wie ein Wert.
Haben Sie einen ForeignKey im Modell? Zeigen Sie die Definitionen an. –
@Daniel Roseman, sicher Klasse Kind (models.Model): prnt = models.ForeignKey (Eltern, on_delete = models.CASCADE) – johndark
Sie sollten das zusammen mit den anderen Modellen, um mit zu beginnen, gepostet haben. Aber ich verstehe immer noch nicht, was du erreichen willst; Was erhoffen Sie sich mit dieser verbundenen Abfrage? –