簡體   English   中英

Django Queryset不顯示外鍵值

[英]Django Queryset does not show foreign key value

我在嘗試通過Django querySet訪問外鍵值時遇到一些問題。 我的模型是:

class Server(models.Model):
    server_id = models.AutoField(primary_key=True)
    mnemonic = models.CharField(max_length=30, unique=True)
    active = models.BooleanField(default=True)
    server_status = models.ForeignKey(Status, default=4)

    def __unicode__(self):
        return unicode(self.mnemonic)

class Status(models.Model):
    status_id = models.AutoField(primary_key=True)
    status_code = models.CharField(max_length=100)

    def __unicode__(self):
        return unicode(self.status_code)

當我執行下一個代碼時,所有代碼都運行正常,並且可以獲得FK關聯值。

>>> print servers.models.Server.objects.get(server_id=3).server_status
Unmanagmed - Reacheable

但是,當我執行查詢集時,我無法獲得與外鍵關聯的值:

>>> servers.models.Server.objects.filter(server_id=3).values("server_status")
[{'server_status': 2L}]

我正在使用Django 1.6.1。

知道如何獲得FK值嗎?

您應該將Server類修改為具有Status的ForeignKey

class Server(models.Model):
    status = models.ForeignKey('Status')
    # ...

我看不到您的模型中定義的任何外鍵。

您需要在模型中建立關系

class Status(models.Model):
    status_id = models.AutoField(primary_key=True)
    status_code = models.CharField(max_length=100)
    server = models.ForeignKey(Server,
                               verbose_name='Server',
                               help_text='Select Server',
                               on_delete=models.PROTECT)

   def __unicode__(self):
       return unicode(self.status_code)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM