12

私はDjangoを初めて使用し、アプリケーションモデルと環境モデルを持っています。環境には、外部キーとしてのアプリケーションがあります。モデルを人間が読める形式で表現するためにUnicode ()メソッドを作成する必要があることは知っていますが、外部キーオブジェクトから属性を取得して、文字列の一部として表示する方法はありますか?

class Application(models.Model):
    app_id = models.IntegerField(primary_key=True)
    app_name = models.CharField(max_length=200)
    app_description = models.CharField(max_length=2000, blank=True)

    def __unicode__(self):
        return self.app_name

class Environment(models.Model):
    app_id = models.ForeignKey(Application, db_column='app_id')
    environ_id = models.IntegerField(max_length=6)
    environ_name = models.CharField(max_length=200)

    def __unicode__(self):
        return '%s %s' % (application__app_name, self.environ_name)

環境モデルを「app_nameenviron_name」として表現したいと思います。

更新:管理ページにデータを入力するときにユーザーがわかりやすくするために、環境モデルを「app_nameenviron_name」として表示する理由。たとえば、app_nameは「NavSystem」、environ_nameは「DEV1」になるため、環境モデルを「NavSystem DEV1」として表すと、「DEV1」よりも便利です。

4

1 に答える 1

13

実際、「ドット」構文を使用して属性を参照することでできます。これがあなたが望むものです:

def __unicode__(self):
   return '%s %s' % (self.app_id.app_name, self.environ_name)     
于 2013-02-22T01:41:47.003 に答える